سؤال

أنا أتعلم 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 صالح؟تحقق من قيمة الإرجاع.ما وصفته حتى الآن لا يقنعني أنك متصل.

إذا لم تكن قد فعلت ذلك بالفعل، فسأتأكد من أن بيئتك تعمل بشكل صحيح.

  1. تحقق للتأكد من أن المستخدم يعمل مع MySQL نفسه (باستخدام شيء مثل mysqlquery).
  2. تحقق للتأكد من إمكانية اتصال php بـ MySQL.أقوم بتثبيت phpmyadmin على جميع الإعدادات الجديدة (حتى لو لم أتركه في مكانه) للتأكد من أن لدي اتصال عمل جيد.
  3. احصل على PDO من خلال استثناءات الأخطاء (انظر http://us2.php.net/manual/en/pdo.error-handling.php) لمعرفة مكان حدوث الأخطاء على الفور.

أعتقد أنك لن تتصل بـ MySQL مطلقًا، وهو ما يفسر عدم القدرة على تغيير قاعدة البيانات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top