سؤال
أنا أتعلم PHP PDO؛بيئتي هي :NetBeans 6.5.1 وXAMPP 1.7.0 ولدي هذا الرمز الذي يبدو أنه متصل به.
- إذا قمت بتغيير dbname إلى اسم غير موجود، فإنه يثير الاستثناء "db غير موجود"
- إذا قمت بتغيير المستخدم، فإنه يظهر "تسجيل الدخول غير صحيح")
ولكن عندما أتصل بـ $cn->query، فإنه يظهر:
حدث استثناء Win32 غير معالج في apache.exe
ما الخطأ الذي افعله؟
$hostname = 'localhost';
$username = 'crb';
$password = 'letmein';
try {
$cn = new PDO("mysql:host=$hostname;dbname=bitacora", $username, $password);
echo 'Connected to database<br />';
$sql = "SELECT * FROM usuario WHERE login = '".$login."' AND clave = '".$clave."'";
// Error here
foreach ($cn->query($sql) as $row) {
print $row['login'] .' - '. $row['clave'] . '<br />';
}
} catch (PDOException $e) {
echo $e->getMessage();
} catch (Exception $e) {
echo $e->getMessage();
}
المحلول
هذا خطأ في XAMPP 1.7.0.ترقية الى 1.7.1 أو اتبع هذه التعليمات لإصلاح تثبيت 1.7.0 الخاص بك.
نصائح أخرى
هل $cn صالح؟تحقق من قيمة الإرجاع.ما وصفته حتى الآن لا يقنعني أنك متصل.
إذا لم تكن قد فعلت ذلك بالفعل، فسأتأكد من أن بيئتك تعمل بشكل صحيح.
- تحقق للتأكد من أن المستخدم يعمل مع MySQL نفسه (باستخدام شيء مثل mysqlquery).
- تحقق للتأكد من إمكانية اتصال php بـ MySQL.أقوم بتثبيت phpmyadmin على جميع الإعدادات الجديدة (حتى لو لم أتركه في مكانه) للتأكد من أن لدي اتصال عمل جيد.
- احصل على PDO من خلال استثناءات الأخطاء (انظر http://us2.php.net/manual/en/pdo.error-handling.php) لمعرفة مكان حدوث الأخطاء على الفور.
أعتقد أنك لن تتصل بـ MySQL مطلقًا، وهو ما يفسر عدم القدرة على تغيير قاعدة البيانات.
لا تنتمي إلى StackOverflow