استكشاف الأخطاء وإصلاحها PDO:لم يتم اكتشاف خطأ عند تنفيذ البيان المعد

StackOverflow https://stackoverflow.com/questions/690827

  •  22-08-2019
  •  | 
  •  

سؤال

لقد واجهت مشكلة في استخدام PDO لأنه لم يتم اكتشاف الخطأ.

الكود بسيط ويعمل بشكل جيد، سأقوم فقط بتضمين نموذج لتجنب الالتباس:

$sql = 'INSERT INTO somedatetable (something) 
        VALUES (:something) 
        ON DUPLICATE KEY UPDATE something=:something';

$values = array(":something" => $something);

try {
    $stmt = $dbh->prepare($sql);    
    $stmt->execute($values);    
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage() . "<br />\n";
}

يعمل الكود بشكل جيد، ولكن عند العمل على وحدة نمطية جديدة، واجهت مشكلة تتمثل في عدم إضافة أو تعديل أي سجلات ولم يتم اكتشاف أي خطأ.

$stmt عاد false لكن لم يكن لدي أدنى فكرة عن سبب أو كيفية العثور على الخطأ.

كان الحل بسيطًا في النهاية، كنت أستخدم مستخدم MySQL محدودًا ولم يكن لديه أذونات الكتابة إلى الجدول.تظهر هذه الأخطاء دائمًا على الفور عند استخدام mysql، لكن باستخدام PDO لا أعرف كيفية الوصول إليها.

كيف يمكنني جعل PHP/PDO يعرض أو يلتقط هذا النوع من أخطاء قاعدة البيانات؟

هل كانت مفيدة؟

المحلول

PDO::errorInfo() أو PDOStatement->errorInfo()

أما بالنسبة للاستثناءات، تحقق من المستندات "الأخطاء ومعالجة الأخطاء" في شركة تنمية نفط عمان.لا يتم طرح الاستثناءات بشكل افتراضي، ولهذا السبب قد ترغب في تمكينها.

أنظر أيضاً:

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