ارجو المساعدة فانا احاول تعلم الpdo ولا استطيع با هذا المشكل
لماذا كلما انشئ اتصال للmysql با pdo يقول لي Connection failed: could not find driver??
المشكلة لا اتوقع انها في الشفرة البرمجية، من حيث وصف المشكلة PDO لم يجد مشغل MySQL لذلك اذا كنت تستخدم توزيعات لينكس مثل ubuntu تأكد من تثبيت PHP و mysql عن طريق كتابة التالي في termenal
dpkg --get-selections | grep php5-mysql
واذا كانا منصبين بالشكل السليم قم بعادة تشغيل Apache
sudo /etc/init.d/apache2 restart
كما انصحك اذا كنت مبتدئ استخدام البرمجيات الجاهزة لتشغيل PHP و MySQL مثل XAMPP.
هل الـ phpmyadmin يعمل ؟
وتأكد من تحديد نوع قواعد البيانات كـ MySQL
'mysql:dbname=test;host=localhost'
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 او فارغ
نعم فعلت
صديقي هل حلت المشكلة ام لا ؟
اذا لم تحل ساختصر عليك ,
اول شيء انشئ ملف وضع هذا الكود :
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 .
وشكرا على صبرك والله سيجزيك خير ما ساعدتني :)
ماهو الخادم الذي تستخدم ؟ كيف تم تثبيت apache واذا كان عمل يدوي هل قمت بتثبيت mysql? وهل هي تعمل بشكل صحيح ؟
الخطاً ياتي ربما حول عدم وجود mysql او عدم ارتباطها مع php
التعليقات