السلام عليكم و رحمت الله و بركاته.
موقع PHPIST.NET هو موقع موجه إلى كل فئات المطورين و المبتدئين في هذا المجال. الموقع حديث النشأة لذلك فمرحبا بكل من يريد المساهمة بأي مقالة في إطار الويب لإغناء المجتمع العربي بآخر التكنولوجية و ما تتميز به بالأخص لغة PHP و PHP5. لكن الموقع منفتح على كل اللغات الأخرى إذا كان من يريد أن يساهم.
أخبار التكنولجية
الرئيسية » PHP » كيف تربط PHP مع قاعدة البيانات Mysql
كيف تربط PHP مع قاعدة البيانات Mysql
php, database

كيف تربط PHP مع قاعدة البيانات Mysql

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

أود اليوم أن أتطرق إلى موضوع كثيرا ما أجد الناس يسألون عنه و يجدون صعوبة في فهمه أو تطبيقه. فربط قاعدة البيانات Mysql بلغة PHP هو أمر سهل و بسيط. أول و قبل البدء يجب أن تتوفر على خادم محلي (Local Server).

لنرى الآن أول شيء نحتاجه لربط قاعدة البيانات بلغة PHP. سنستعمل دالات مبنية في لغة PHP و هذا ما يسهل الربط و يجعله بسيط.

لننشيء ملف نضع فيه ربط قاعدة البيانات و هذه ممارسة جيدة و أحبذها، على غرار من يضع ربط قاعدة البيانات في كل ملف، فهذه ممارسة ليست جيدة على الإطلاق.

إذا لنسمي ملف قاعدة البيانات config.php :

هذا كل شيء، هل ترى الآن كيف أن الربط جد بسيط!

لنحلل الأسطر لتعرف كيف تربط قاعدة البيانات لديك :

في السطر 4 : نضع اسم host$ و هو في الغالب localhost.

في السطر 5 : هذا اسم المستخدم و في الغالب يكون root، لكن تحقق من ذالك.

في السطر 6 : هنا نضع كلمة المرور، لكن في الخادم المحلي قد لا تكون كلمة مرور و في هذه الحالة، نترك هذا المتغير فارغا.

في السطر 7 : هنا نضع اسم قاعدة البيانات التي نود الإتصال بها.

في السطر 9 : الدالة ()PDO تهيئ PHP للإتصال بقاعدة البيانات و نضع كل من الهوست و اسم المستخدم و كلمة المرور، قد تلاحظ أنني وضعت شيء آخر، هذا يساعدنا في حالة لم نضع المعلومات المطلوبة الصحيحة فهو يتكلف بالتحقيق من كل المعلومات أنها صحيحة، إن لم تكن كذلك فهو يرسل رسالة خطأ للمتصفح.

هذا كل ما يتعلق بتهييء قاعدة البيانات، بقي لنا شيء واحد هو أن ندعو ملف config.php إلى الملف الذي نريد أن نستعمله مع قاعدة البيانات، لنأخذ مثال بسيط على ذلك :

كل ما علينا فعله هو استعمال الدالة ()require أو الدالة ()include لجلب ملف config.php ثم نقوم باستخراج المعلومات من قاعدة البيانات، و يمكنك أيضا أن تفعل ما تريده من تحديث أو إدراج معلومات جديدة لقاعدة البيانات.

أتمنى أن الصورة اتضحت لك، إذا مازال هناك شكوك أو استفسار أو اقتراح، فدع تعليقك.

عن Yassine Belkaid

ياسين بلقايد، مطور مواقع محترف. طور مجموعة كبيرة من المواقع و تطبيقات الويب. يحب عمله و شغوف بآخر التكنولوجية، يحب لغة PHP5 و كل ما يتعلق بها.

52 تعليق

  1. الله يعطيك العافيه ويجزاك الجنه جاوبت على اكثر سؤال كان محيرني
    طيب انا اقدرر احدد في كود php عدد المعلومات الي ابغى عرضها من قاعده البيانات

    • السلام عليكم أخي أريج،
      جزاك الله على التعليق الرائع، نعم يمكنك تحديد المعلومات التي تود عرضها من قاعدة البيانات

  2. شكراً أخي الكريم عن الشرح الرائع . لكن بخصوص الاتصال بقاعدة البيانات الخاصة بموقعي ماذا ستكون قيمة $host . شكراً لك مرة أخرى.

  3. غالبا ستكون localhost إن لم تكن في هذه القيمة، ستجدها عندما تدخل للوحة التحكم في موقعك

    بالتوفيق أخي

  4. ممكن مساعدة في ربط سكربت بقاعدة بيانات هذا الرابط http://geek-technology.ml/ يطلع لي خطأ (((( Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/u772364331/public_html/include/php/database.php on line 17Warning: mysql_connect(): Access denied for user \\\\’u660323075_crazy\\\\’@\\\\’10.2.1.6\\\\’ (using password: YES) in /home/u772364331/public_html/include/php/database.php on line 17Access denied for user \\\\’u660323075_crazy\\\\’@\\\\’10.2.1.6\\\\’ (using password: YES) ))))وشكراُ

    • السلام عليكم أخي

      هذا الخطأ راجع إلى أنك تستخدم نسخة جديدة من بي إتش بي التي لم تعد تسخدم Mysql_ إدا عليك أن تستخدم PDO

      بالتوفيق

  5. مرحبا أخي

    شكرا لك على هذه المعلومة الطيبة

    أخي أنا أرغب في تعلم لغة php وربطها بقاعدة بيانات ألايد تصميم برنامج كموقع بسيط ولكن ليس لدي خلفية تامة

    هل ممكن تكون لي صديقا ونتراسل عبر الأيميلات لكي تفهمني ما يصعب علي

    هذا ايميلي:

    f_forex@hotmail.com

  6. Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\InfoBahit\acc\connection.php on line 2
    ارجو منك مساعدتي في حل هداالمشكل

    • السلام عليكم أختي

      هذا الخطأ راجع إلى أنك تستخدم نسخة جديدة من بي إتش بي التي لم تعد تسخدم Mysql_ إدا عليك أن تستخدم PDO

      بالتوفيق

  7. مرحبا ممكن استفسار عند استخدم داله mysqli_query تظهر مسج \\”no database selected \\” داله mysqli _query تعطيني قيمه false رجاءا رجاءا ماهو الحل لهذه المشكله وأين الخطأ عندي علما تحققت من mysqli _connect ويتم الاتصال

  8. شرح واضح وميسر ، سأجرب في موقعي ، وهذه أول مرة .. شكرا لك

  9. كيف اعمل اتصال عن طريق فنكشن يا اخي

    • السلام عليكم أختي،
      الأمر بسيط و سهل، هذا مثال بسيط:

      < ?php function databaseConnection() { try { $instance = new PDO('mysql:host=your_host;charset=utf8', 'your_username', 'your_password'); $instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
      return $instance;
      }
      catch (PDOException $e) {
      $error_message = $e->getMessage();
      echo “this is displayed because an error was found: “. $error_message;
      exit();
      }
      }

      $instance = databaseConnection();

      $stm = $DB->prepare(“SELECT * FROM users WHERE user = ?”);
      $stm->execute(array(2));
      $get_user = $stm->fetch();

      var_dump($get_user);

  10. لوسمحت أريد حل هذه المشكلة Fatal error: Call to a member function get() on a non-object in C:\AppServ\www\Cocolani\php\req\checkusername.php on line 4

    • السلام عيلكم أخي,

      الدالة التي تحاول أن تستعملها، ليست موجودة داخل الكائن

      حاول أن تضع الكود بالكامل لكي أرى أين الخلل في كودك

  11. السلام عليكم اخي من فضلك انا صنعت لعبة عبارة عن عدة ملفات وملفات اخرى منها ملفات php يحب ربطها مع mysql وهذه الملفات عملها في اللعبة فتح التسجيل فمثلا ملف اسمه checkusername يتأكد من الاسم الذي اختاره اللاعب هل اخذه احد قبله او لا لو اخذه يطلب منه اخذ اسم جديد بإختصار : أنا لدي ملفات مبرمجة وتمام لكن لا استطيع ربطها شخص برمجها لي وانقطعت عنه ولم استطع ربطها لانني لست خبير سوا في ملفات الswf ( الفلاش ) ، عدد الملفات : 3 المقابل المادي : 20$ أرجو منك التواصل معي عبر الفيسبوك فقط اخبرني أنك الخبير الذي أخبرته بالموضوع عبر موقع phpist : https://www.facebook.com/AHMED3mak وشكراً

  12. يعطيك العافية .. انا قمت بإنشاء قاعدة بيانات بسيطة على برنامج wamp وأضفت الملف php للاتصال بها…لكن سؤالي كيف ممكن اتصل من موبايل الاندرويد بملف الphp اذا كان برنامج ال wamp هو اسضافة محلية ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    فرحت عملت قاعدة بيانات على استضافة خارجية لكن لا اعرف كيف اضع ملفي او اين اضع ملف ال php ????????????????????????????????????????? شكراً

  13. السلام عليكم ورحمة الله تعالى وبركاته
    أنا لدي قاعدة بيانات وعايزة أعمل إستمارات(form)ب(html)وأربط ب(php)بحيث يمكنني أن أدخل بيانات الي قاعدة البيانات عن طريق الاستمارات

  14. السلام عليكم
    اخي العزيز مشكور على هذا الشرح الرائع ولكن هل هناك طريقة تمكننا من عمل نفس الكود يربطنا على اكثر من قاعدة بيانات دون الحاجة الى اعادة التحديد في كل مرة

    • عليكم السلام أخي العزيز،

      نعم يمكنك ربط موقعك بأكثر من قاعدة بيانات، يمكن فعلها بالطريقة التالية:

      $conn2 = mysql_connect($host, $user, $pswrd, true) or die(‘Can\’t connect to database 2.’);
      mysql_select_db($dbase, $conn2) or die(‘Can\’n find database.’);

      ثم تحدد أي قاعدة بيانات تريد في استعلاماتك:

      $products = ‘select * from products’;
      $query = mysql_query($products, $conn2);

      بالتوفيق أخي

  15. لوسمحت أريد حل هذه المشكلةWarning: mysql_connect() [function.mysql-connect]: [2002] Une tentative de connexion a échoué car le parti connecté n’a pa (trying to connect via tcp://localhost:3306) in C:\AppServ\www\new\setup.php on line 8Warning: mysql_connect() [function.mysql-connect]: Une tentative de connexion a échoué car le parti connecté n’a pas répondu convenablement au-delà d’une certaine durée ou une connexion établie a échoué car l’hôte de connexion n’a pas répondu. in C:\AppServ\www\new\setup.php on line 8Can\\’t connect to database.

  16. في بعض الحالات نعم هو نفسه اسم قاعدة البيانات

  17. السلام عليكم لو سمحت أريد حل لهذا الخطأFatal error: Call to undefined function mysql_select_db() in C:\xampp\htdocs\PhpProject3\add.php on line 12

  18. السلام عليكم
    انا عم اعمل اداة بحث
    عندي مشكلة انو لما ابحث عم يظهر محتويات ملف الphp

  19. السلام عليكم
    اخي كيف اعمل الرابط اللي راح يوصلني لصفحة ال php.

  20. ممكن اسألك سؤال لو سمحت اناعندى قاعدة بيانات فيها جداول كلمات ايجابية وسلبية عايزة اربطها بكود للتنقيب فى الاراء علشان يدخل الكود يتعرف على نوع الكلمة اذا كانت ايجابية ام سلبية المشكلة عندى ازاى اربط قاعدة البيانات بالكود او الالجوريزم ده ؟؟

    • أظن أن الشرح الذي قمت به يوضح جيدا كيف تقوم ربط قاعدة البيانات بملف البي اليتش بي، شيء بسيط جدا

      أما بالخصوص بالخواريزمية التي قمت بإنشائها فهذا مرتبط بك و الكود

  21. اريد المساعدة في حل مشكلة وبعتقد انها ما صعبة عليكم
    اريد اظهار جداول من قاعدة بيانات بي اتش بي ماي ادمن عن طريق البي اتش بي وانا استخدم محرر النصوص نوت باد ++ واباتشي سيرفر (اظهار الحقول من الجداول)

    • // $con is a link to db connect

      $sql = ‘select * from your_table’;
      $req = mysqli_query($con, $sql); // use PDO/Mysqli, as mysql has been deprecated

      if ($req) {
      while ($obj = mysqli_fetch_object($rq)) {
      printf(“%s (%s)\n”, $obj->product_name, $obj->product_ref);
      }

      // Free result set
      mysqli_free_result($req);
      }

      mysqli_close($con);

  22. السلام عليكم انا اصمم موقع وعندي فيه مجموعه من الفئات مثلا تعليم ،صحه، جمال وكل وحدة من الفئات فيها عدة اشخاص وعندي نظام تعليقات للزوار.. مشكلتي انو لما الزائر يضيف تعليق مايروح للداتا بيس يقول فيه خطأ بال id حق الشخص.. كيف احدد ال id الصحيح اللي راح يتخزن فيه الكومنت يعني كيف لما الزائر يعلق على شخص معين او مقال معين يروح التعليق لصفحه هذا الشخص او المقال ؟

    • عليكم السلام أخي،

      الكل متعلق على الآيدي للاشخاص
      كيف احدد ال يد الصحيح اللي راح يتخزن فيه الكومنت؟ أنا لا أعرف كيف صممت موقعك لكن الفكرة العامة هي عندما يريد شخص ما التعليق على شيء يجب إدراج الآيدي المعرف هذا الشخص الدي قام بالتعليق و إدراجه في قاعدة البيانات مع البيانات الأخرى المتعلقة بالتعليق، سهل أليس كذلك؟

      بالتوفيق أخي و عذرا على التأخير

  23. السلام عليكم لو سمحت أريد حل لهذا الخطأFatal error: Call to undefined function mysql_select_db() in C:\wamp\www\database.php on line 12

  24. السلام عليكم
    لما اجرب اي كود لل php مايطلعلي اي نتيجة مالحل؟

  25. اسلام عليكم ……….هل ممكن من شرج مبسط بكيفية ربط php مع اي قاعدة البيانات سواء كانت اكسس او mysql

  26. لو سمحت ازاي اربط قاعده بيانات. ماي سيكول بالديزاين HTML ؟؟ عاوزه اكواد الربط؟ بال php والجافا سكربت

    • السلام عليكم،

      قاعدة البيانات لا تتعامل مع أكواد HTML, يجب عليك استعمال لغة PHP لقرائة المعلومات التي في قاعده” البيانات

  27. السلام عليكم انا طالبة علوم حاسب واواجه مشاكل في الربط مع قاعد البانات وهل تستطيع مساعدتي في اتمام تصميم موقع مبتدأ مع جزيل الشكرNotice: Undefined index: name in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\table.php on line 10Notice: Undefined index: email in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\table.php on line 11Notice: Undefined index: number in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\table.php on line 12Notice: Undefined index: date in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\table.php on line 13echec in connexion:SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \\\\’information (\\\\’\\\\’, \\\\’\\\\’, ,)\\\\’ at line 1

  28. السلام عليكم ، جزاك الله خير ، وبارك الله في عمالك و علمك ،،،
    انا سويت تطبيق متصل بقاعدة بيانات على phpmyadmin اونلاين ، و اريد من المستخدمين ان يضيفوا بياناتهم _ على سبيل المثال_ الى قاعدة البيانات .
    قمت بعمل ملف php المطلوب لكن لا اعرف كيف اجعله متاحا لجميع المستخدمين ، أين ارفعه او اوضعه ليتمكن كل من يملك رابطة من تنفيذ الامر …

    • و عليكم السلام أخي،

      الطريقة بسيطة جدا، اكتب الكود في ملف و ارفعه الى الإستضافة، ثم قم بالذهاب الى رابط الملف الدت رفعته و اكتب بياناتك فيه للإدراجها في قاعدة البيانات

اضف رد

لن يتم نشر البريد الإلكتروني . الحقول المطلوبة مشار لها بـ *

Please type the characters of this captcha image in the input box

Please type the characters of this captcha image in the input box

*