لماذا كلما انشئ اتصال للmysql با pdo يقول لي Connection failed: could not find driver??

ارجو المساعدة فانا احاول تعلم الpdo ولا استطيع با هذا المشكل

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

المشكلة لا اتوقع انها في الشفرة البرمجية، من حيث وصف المشكلة PDO لم يجد مشغل MySQL لذلك اذا كنت تستخدم توزيعات لينكس مثل ubuntu تأكد من تثبيت PHP و mysql عن طريق كتابة التالي في termenal

 dpkg --get-selections | grep php5-mysql

واذا كانا منصبين بالشكل السليم قم بعادة تشغيل Apache

 sudo /etc/init.d/apache2 restart

كما انصحك اذا كنت مبتدئ استخدام البرمجيات الجاهزة لتشغيل PHP و MySQL مثل XAMPP.

لا انا استخدم ويندوز اخي

تأكد من تفعيل موديل pdo_mysql من ملف php.ini

  extension=php_pdo_mysql.dll

فعلته و اعدت تشغيل السيرفر لكن نفس الشيئ و نفس المشكل

هل الـ phpmyadmin يعمل ؟

وتأكد من تحديد نوع قواعد البيانات كـ MySQL

  'mysql:dbname=test;host=localhost'

نعمphp my adminيعمل و حددت كل متغيرات الاتصال

username = root

pass = toor

dbname = world

ما نوع السيرفر المحلي الذي تستخدمه ؟ وتأكد من وجود الملف php_pdo_mysql.dll داخل المجلد extension او ext او حسب السيرفر الذي تستخدمه

استعمل سيرفر apache وايضا وجدت الملف الذي تتحدث عنه في مجلد ext

هل يمكنك مشاركتنا الكود ؟

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

echo "Connected successfully";

}

catch(PDOException $e)

{

echo "Connection failed: " . $e->getMessage();

}

?>

اها عرفتها :) انت لم تعرف متغير للاتصال

try{
  //                                          dbname    dbuser        dbpass
  $dbh = new PDO('mysql:host=localhost;dbname=name', 'username here', 'passhere');
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
  die($e->getMessage());
}

غير اسم قاعدة البيانات، كذلك اسم المستخدم وكلمة المرور

نفس المشكل حضي سيئ could not find driver

عزيزي غير اسم المستخدم لقاعدة البيانات ( غير username ) الى اسم المستخدم مثلا root وحدها بدون username

نفس المشكل :( بدات افقد الامل

لا تفقد الامل اطبع كود الاتصال وتاكد من وجود قاعده بيانات باسم world وتاكد من كلمه المرور هي toor حيث الافتراضي في الاغلب يكون root او فارغ

الباسوورد انا وضعته toor عند تثبيت apache

extension=pdo_mysql.dll

او لينكس extension=pdo_mysql.so

تاكد منهما

لا يا عزيزي ليس php_mysql بل pdo_mysql انت تسخدم pdo حيث هنا تشمل قواعد بيانات كثيره

extension=php_pdo_mysql.dll

هي مفعلة عندي

ساضع الرد في الاسفل هنا اصبح الايطار بشع "$

صديقي هل حلت المشكلة ام لا ؟

اذا لم تحل ساختصر عليك ,

اول شيء انشئ ملف وضع هذا الكود :

if(defined('PDO::ATTR_DRIVER_NAME')) {
    echo "true";
} else {
    echo "false";
}

وقم بتنفيذه , (هذا الكود يعمل على التحقق ما اذا كان pdo driver يعمل عندك او لا) اذا كانت النتيجة false قم بتفعيله هذا الرابط سيساعدك http://php.net/manual/en/pd...

اما اذا كانت النتيجة true . فقم بتحميل هذا الكلاس من github ->

وهذا شرح له باللغة العربية لكيفية استخدامه

اذا عمل معك بدون اخطاء انصحك بقراءة للــ construct من الكلاس

لم ينجح معي كود التحقق من pdo driver يعني قال لي false

ذهب لموقع php حيث طلبت مني .قمت با تفعيل الextension=php_pdo.dll +

extension=php_pdo_mysql.dll

واعدت تشغيل السيرفر apche.لكن نفس النتيجة ."could not find driver"

حسنا بما انك متأكد من تفعيلك extension=php_pdo.dll و extension=php_pdo_mysql.dll

وكانت النتيجة false

فقم بانشاء ملف وضع فيه

phpinfo();

قم بتنفيذه .

ابحث عن API Extensions من المفترض ان تجد mysql,mysqli (هذا من الاعدادات الافتراضية) وبما انك متأكد من تفعيلك لل pdo يجب ان تجد pdo_mysql ايضا . اذا كانت موجودة . فالحل هو ان تنصب سيرفر اخر (انصحك ب xampp)

اما اذا لم تكن موجودة فهي غير مفعلة !!


قل لي النتيجة (انا معك حتى تحل المشكلة ان شاء الله)

بحثت عن API Extensions لم اجد ولا كلمة منها

راح اعيد تثبيت سيرفر اخر وهو xampp .

وشكرا على صبرك والله سيجزيك خير ما ساعدتني :)

هل حُلت المشكلة صديقي ؟

لم يرد xampp التثبيت معي .فغيرت بورت السكايب و برامج التحميل من 80 الى بروتات اخرى

اعدت تثبيته ولم يشتغل السيرفر

سا احاول تعلم mysqli بدلا من pdo :)

ماهو الخادم الذي تستخدم ؟ كيف تم تثبيت apache واذا كان عمل يدوي هل قمت بتثبيت mysql? وهل هي تعمل بشكل صحيح ؟

الخطاً ياتي ربما حول عدم وجود mysql او عدم ارتباطها مع php

سا اعيد تثبيت apche من جديد و نرى النتيجة سا عود بسرعة

انصحك بهذا

بالتوفيق

Connection Failedcould not find driver

هذه الرسالة تظهر عندما اعرض صفحة php خاصة عند الاتصال مع قاعدة البيانات mysql و PDO

استخدم xamp

بحثت بكافة المواقع عربية واجنبية وطبقت ماقيل ولكن المشكلة ماتزال قائمة الى الان