اذهب إلى المحتوى

السؤال

نشر (معدل)

الكود التالي لا يعمل معي ولا يعطيني أي خطأ:

try {
    $db = new PDO("mysql:host=".HOST.";dbname=".DB, USER, PW);
    $st = $db->prepare("SELECT * FROM Users");
}
catch (PDOException $e){
    echo $e->getMessage();
}

كيف يمكنني رؤية الخطأ عند استعمالي لـ PDO PHP؟

تم التعديل في بواسطة عبد الهادي اطويل
تعديل العنوان ونص الموضوع

Recommended Posts

  • 0
نشر

عليك بتفعيل خاصية إطهار الخطأPDO::ATTR_ERRMODE و توقيف PDO::ATTR_EMULATE_PREPARES

 وكذا ضع كود sql  داخل دالة prepare()  

هكذا

<?php
try {<?php
try {
    $pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);


    $pdo->prepare('INSERT INTO DoesNotExist (x) VALUES (?)');
}
catch(Exception $e) {
    echo 'Exception -> ';
    var_dump($e->getMessage());
}

كمثال عن النتيجة   
Exception -> string(91) "SQLSTATE[42S02]: Base table or view not found: 
1146 Table 'test.doesnotexist' doesn't exist"

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...