الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة:اريد ان اتصل بقاعدة Sqlserver عن طريق Php

بدأه MR C++ في 13 يوليو 2008 · 14 رد · 1,485 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد ان اتصل بقاعدة بيانات sqlserver عن طريق الphp

باستخدام سيرفر apache محلي

ماذا أقول وفي فؤادي جمرة تزفو وفي العينين يزفو العمى شعب تولاه الخمول وأمة تمشي إلى الوراء بلا نظر هاقد شبعنا من كلام فارغ ومن القشور وغيرنا أكل الثمر فالعامل المسكين يقضي نحبه من جوعه وسواه من الأكل انفزر يا أمة ترجو الحياة شريفة كيف الوصول وبيننا الغش انتشر فكيف الحياة لنا تستجيب فهذا زمان قليل الحياء وهذا زمان جنون البشر

#2

Sql Server

Connect to Sql Server

I Say Nothing

#3

http://www.php.net/manual/en/function.mssql-connect.php

اقرأة بعناية اذكر ان هذا الموضوع ليس بهذة البساطة ويحتاج الى عدد من ال Configuration فى ال Mssql وتغيير أحد ال Dlls فى ال5 Php لواحده احدث (لو المعنية Mssql2005 )

#4

اَضافة الى ماتفضل به الاخوة , يمكنك استخدام مكتبه ADOdb

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#5
محمد معاشر كتب:
اَضافة الى ماتفضل به الاخوة , يمكنك استخدام مكتبه ADOdb

اخي ممكن شوية تفصيل

ASDen كتب:
http://www.php.net/manual/en/function.mssql-connect.php

اقرأة بعناية اذكر ان هذا الموضوع ليس بهذة البساطة ويحتاج الى عدد من ال Configuration فى ال Mssql وتغيير أحد ال Dlls فى ال5 Php لواحده احدث (لو المعنية Mssql2005 )

اخي لدي نسخة sqlserver 2005

ولكن حوالت ان اطبق الطريقة ولكن لم تجد نفعا على الاغلب في مشكلة بملف dll

الا يوجاد برنامج coonector يتصل بسهولة

ماذا أقول وفي فؤادي جمرة تزفو وفي العينين يزفو العمى شعب تولاه الخمول وأمة تمشي إلى الوراء بلا نظر هاقد شبعنا من كلام فارغ ومن القشور وغيرنا أكل الثمر فالعامل المسكين يقضي نحبه من جوعه وسواه من الأكل انفزر يا أمة ترجو الحياة شريفة كيف الوصول وبيننا الغش انتشر فكيف الحياة لنا تستجيب فهذا زمان قليل الحياء وهذا زمان جنون البشر

#6

كما هو واضح من الردود , توجد هناك عده طرق للاتصال بقاعدة بيانات MS SQL Server ..

سوف احاول ان اتطرق الى بعض الطرق .

من بين الطرق لعمل الاتصال والحصول على البيانات , يمكنك استخدام دوال الـ PHP الاصليه (Native MSSQL functions) التي صممت للتعامل مع قاعدة بيانات MSSQL ...

مثال :

  1.  
  2. <?php
  3. $Server ="localhost";
  4. $User = "user_name";
  5. $Pass = "password";
  6. $DB_Name = "demo";
  7.  
  8.  
  9. $conn = mssql_connect($myServer, $myUser, $myPass)
  10. or die("Couldn't connect to SQL Server on $Server");
  11.  
  12.  
  13. $db= mssql_select_db($DB_Name, $conn)
  14. or die("Couldn't open database $DB_Name");
  15.  
  16.  
  17. $sql = "SELECT * from table";
  18.  
  19. $result = mssql_query($sql);
  20.  
  21. while($row = mssql_fetch_array($result))
  22. {
  23. echo "<li>" . $row["id"] . $row["name"] . "</li>";
  24. }
  25.  
  26. mssql_close($db);
  27. ?>
  28.  

الملاحظ ان هذه الطريقة توجد بها مشاكل و Bug , لان الـ Driver مازال قيد التطوير ..

وايضاً بالنسبه لحالتك التي تريد فيها التعامل مع MSSQL 2005 , فلن يعمل معك الـ Driver الحالي للـ MSSQL الموجود مع الـ PHP 5 لانه غير متوافق . ولجعله يعمل عليك كما قال الاخ ASDen ان تقرأ http://www.php.net/manual/en/function.mssql-connect.php , جيداً ..

يمكنك ايضاً استخدام الاتصال بواسطه الـ ODBC من خلال مصدر DSN (الذي تقوم بإعداده من خلال لوحه التحكم من خلال الذهاب Start -> Control Panel -> Administrative Tools -> Data Sources) , واعتقد انه ستعمل مع MSSQL 2005 بدون مشاكل .

مثال :

  1.  
  2. <?php
  3. $conn = odbc_connect('DSN_src','','');
  4.  
  5. if ($conn)
  6. {
  7.  
  8. $query = "select * from table";
  9.  
  10. $result=odbc_exec($conn, $query);
  11.  
  12. echo "<table border="1"><tr>";
  13.  
  14. while(odbc_fetch_row($result))
  15. {
  16. echo "<tr>";
  17. for($i=1;$i<=odbc_num_fields($result);$i++)
  18. {
  19. echo "<td>";
  20. echo odbc_result($result,$i);
  21. echo "</td>";
  22. }
  23. echo "</tr>";
  24. }
  25.  
  26. echo "</td> </tr>";
  27. echo "</table >";
  28.  
  29. odbc_close ($conn);
  30. }
  31. else echo "odbc not connected";
  32. ?>
  33.  

, ايضاً يمكنك استخدام Microsoft ADODB مع الـ PHP للاتصال مع قاعدة بيانات MSSQL .

مثال :

  1.  
  2. <?php
  3. $Server = "localhost";
  4. $User = "user_name";
  5. $Pass = "password";
  6. $DB_Name = "demo";
  7.  
  8. $conn = new COM ("ADODB.Connection")
  9. or die("Cannot start ADO");
  10.  
  11. $connStr = "PROVIDER=SQLOLEDB;SERVER=".$Server.";UID=".$User.";PWD=".$Pass.";DATABASE=".$DB;
  12. $conn->open($connStr); //Open the connection to the database
  13.  
  14. $sql = "SELECT * FROM table";
  15.  
  16. $rs = $conn->execute($query);
  17.  
  18. $num_columns = $rs->Fields->Count();
  19.  
  20. for ($i=0; $i < $num_columns; $i++) {
  21. $fld[$i] = $rs->Fields($i);
  22. }
  23.  
  24. echo "<table>";
  25.  
  26. while (!$rs->EOF) //carry on looping through while there are records
  27. {
  28. echo "<tr>";
  29. for ($i=0; $i < $num_columns; $i++) {
  30. echo "<td>" . $fld[$i]->value . "</td>";
  31. }
  32. echo "</tr>";
  33. $rs->MoveNext(); //move on to the next record
  34. }
  35.  
  36. echo "</table>";
  37.  
  38. $rs->Close();
  39. $conn->Close();
  40.  
  41. ?>
  42.  

ايضاً يمكنك استخدام مكتبه ADOdb الذي ذكرتها في رد سابق . كمثال عليها :

  1.  
  2. <?php
  3. include('adodb.inc.php');
  4. $conn =& ADONewConnection('odbc_mssql');
  5. $dsn = "Driver={SQL Server};Server=localhost;Database=demo;";
  6. $conn->Connect($dsn,'userid','password');
  7.  
  8. $recordSet = &$conn->Execute('select * from table');
  9.  
  10. if (!$recordSet)
  11. print $conn->ErrorMsg();
  12. else
  13. while (!$recordSet->EOF) {
  14. print $recordSet->fields[0].' '.$recordSet->fields[1].'<BR>';
  15. $recordSet->MoveNext();
  16. }
  17. ?>
  18.  

طبعاً بعد تحميل المكتبه ADOdb ..

المتبقي عليك هو المحاولة والتجربة ..

بالتوفيق ..

تم تعديل هذه المشاركة بواسطة محمد معاشر في 15 يوليو 2008 في 15:35

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#7

السلام عليكم

اولا احب ان اشكركم الشكر الجزيل والله يجزيكم كل الخير على ماقدمتوه لي واخص بالشكر الاخ محمد المعاشر

ولكن احب ان اضيف بعض التعليقات التي واجهتها لعل يستفيد منها غيري

اولا بخصوص الاتصال عن طريق mssql فان المكتبة الموجود مع الاباتشي بالاصدار الاخير 2.5.9 تعمل بشكل جيد ولكن تعاني الكثير من المشاكل مع النظام وقد قرات الرابط الذي اعطيتموني اياه ووجدت ان المستخدمين له هناك يعانون الكثير من المشاكل وقد قام احدهم باستيراد مكتبات من مايكروسوفت جربتها ولكن هناك اخطاء تحدث عند تطبيق عدة استعلامات مع بعضها

اما بخصوص اتصال odbc فهو يعمل بشكل جيد وجربته ولكن احياء لا يتصل عندما تكون هناك عدة اتصالاات لقاعدة البيانات ويقول لي ان هناك مشلكة في الاتصال

ولكن نزلت المكتبة adodb495a وهي تعمل بشكل رائع فقد نسخت الكود الاخير وعدلت عليه طبعا بمايناسبني ووجدته فعال جدا

اخيرا شكرا لكم مرة اخرى وقد رفقت المكتبة التي عملت عليها للافادة

اخوكم ابراهيم محو

adodb495a.zip

تم تعديل هذه المشاركة بواسطة MR C++ في 16 يوليو 2008 في 05:09

ماذا أقول وفي فؤادي جمرة تزفو وفي العينين يزفو العمى شعب تولاه الخمول وأمة تمشي إلى الوراء بلا نظر هاقد شبعنا من كلام فارغ ومن القشور وغيرنا أكل الثمر فالعامل المسكين يقضي نحبه من جوعه وسواه من الأكل انفزر يا أمة ترجو الحياة شريفة كيف الوصول وبيننا الغش انتشر فكيف الحياة لنا تستجيب فهذا زمان قليل الحياء وهذا زمان جنون البشر

#8

شكرا اخي الكريم على اثرائك ووضع تجربتك في الموضوع ..

بالنسبه لمكتبه ADOdb , فالمثال الاخير عباره عن طريقه من طرق اخرى موجوده في الـ ADOdb للاتصال مع MS SQL Server , وهي تستخدم مزود الـ ODBC .

وتوجد هناك طرق اخرى منها استخدام , مكتبه الـ mssql الموجوده مع الـ PHP . كمثال على طريقة الاتصال :

$db =& ADONewConnection('mssql');
	$db->Connect("localhost', 'userid', 'password', 'demo');

, توجد ايضاً طريقة عن طريق استخدام Microsoft ADO . مثال على الاتصال :

include('adodb.inc.php'); 
	$db = &ADONewConnection("ado_mssql");

	$DSN="PROVIDER=MSDASQL;DRIVER={SQL Server};"
		. "SERVER=localhost;DATABASE=ai;UID=sa;PWD=;" ;
	$db->Connect($DSN);

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#9

بالمرة هناك شىء اخر لم اجربة ولكنى رأيتة من فترة بالصدفة

Mssql Driver for php

لية Documentation و أمثلة محترمة على ال MSDN لو أحد جربة نسمع منة

#10
ASDen كتب:
بالمرة هناك شىء اخر لم اجربة ولكنى رأيتة من فترة بالصدفة

Mssql Driver for php

لية Documentation و أمثلة محترمة على ال MSDN لو أحد جربة نسمع منة

هذا ايضاً مذكور ضمن http://www.php.net/manual/en/function.mssql-connect.php , ويعمل بشكل جيد , ومتوافق مع SQL Server 2000 وليس فقط 2005 كما يوحي الاسم ..

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

------------------------------------------------------------------------------------------------

gazabigBanner.jpg

------------------------------------------------------------------------------------------------

#11
ASDen كتب:
بالمرة هناك شىء اخر لم اجربة ولكنى رأيتة من فترة بالصدفة

Mssql Driver for php

لية Documentation و أمثلة محترمة على ال MSDN لو أحد جربة نسمع منة

نعم انا جربتها ذكرت ستبقا ان هناك مكتبات من مايكروسوفت وهي عبارة عن ملفي dll هما php_sqlsrv.dll php_sqlsrv_ts.dll لكن هناك في مشكلة بالتوافق لا اعرف السبب ..

ماذا أقول وفي فؤادي جمرة تزفو وفي العينين يزفو العمى شعب تولاه الخمول وأمة تمشي إلى الوراء بلا نظر هاقد شبعنا من كلام فارغ ومن القشور وغيرنا أكل الثمر فالعامل المسكين يقضي نحبه من جوعه وسواه من الأكل انفزر يا أمة ترجو الحياة شريفة كيف الوصول وبيننا الغش انتشر فكيف الحياة لنا تستجيب فهذا زمان قليل الحياء وهذا زمان جنون البشر

#12

فعلا موضوع رائع

بس سؤالي انا لما تكون استضافتي على لينكس ايش افضل طريقة اعملها

بمعنى عندي في العمل برنامج شؤون موظفين القاعدة sql2000 والواجهة vb6

اريد اني انسخ القاعدة بشكل دوري على موقع بـ php

#13

لم أفهم الوضع جيدا

وضح من ال Server ومن ال Client و أين ال SQLserver ووضع العمل بالنسبة لهم

#14

قاعدة البيانات على سيرفر مستقل sqlserver2000 والبرنامج vb6 طبعا لوكلي نحمله على الكلاينات ويتصل بسيرفر sql.

انا اللي افكر فيه باني اربط القاعدة ب php عشان اضعها على النت . بحبث الموظف يقدر يصل لبيانته من النت .

تم تعديل هذه المشاركة بواسطة أصيل في 21 يوليو 2008 في 23:36

#15

وما المشكلة اقرأ الموضوع جيدا ففية حل كامل لمشكلتك

مواضيع مشابهة