版本: v2.3.0
त्रुटियाँ और त्रुटि प्रबंधन
PDO तीन त्रुटि प्रबंधन मोड प्रदान करता है जिन्हें आप कनेक्शन पर कॉन्फ़िगर कर सकते हैं। https://www.php.net/manual/en/pdo.error-handling.php. पर और पढ़ें
$database = new Medoo([ // आवश्यक. 'type' => 'mysql', 'host' => 'localhost', 'database' => 'name', 'username' => 'your_username', 'password' => 'your_password', // वैकल्पिक. // PDO::ERRMODE_SILENT (डिफ़ॉल्ट) | PDO::ERRMODE_WARNING | PDO::ERRMODE_EXCEPTION 'error' => PDO::ERRMODE_SILENT, ]);
PDO::ERRMODE_SILENT (डिफ़ॉल्ट)
इस मोड में, PDO चुपचाप त्रुटि कोड सेट करता है। आप
$database->error से त्रुटि संदेश और $database->errorInfo से विस्तृत त्रुटि जानकारी पढ़ सकते हैं।$database = new Medoo([
// ...
'error' => PDO::ERRMODE_SILENT
]);
$database->select("bccount", "*");
var_dump($database->error);
var_dump($database->errorInfo);
// string(36) "Table 'master.bccount' doesn't exist"
//
// array(3) {
// [0]=> string(5) "42S02"
// [1]=> int(1146)
// [2]=> string(36) "Table 'master.bccount' doesn't exist"
// }
PDO::ERRMODE_WARNING
PDO एक पारंपरिक E_WARNING संदेश उत्सर्जित करता है। यह विकास के दौरान उपयोगी है क्योंकि निष्पादन जारी रहता है। आप अभी भी
$database->error के माध्यम से त्रुटियाँ पढ़ सकते हैं, जैसे PDO::ERRMODE_SILENT में।$database = new Medoo([
// ...
'error' => PDO::ERRMODE_WARNING
]);
$database->select("bccount", "*");
var_dump($database->error);
var_dump($database->errorInfo);
// Warning: PDOStatement::execute(): SQLSTATE[42S02]: Base table or view not found:
// 1146 Table 'bccount' doesn't exist in /src/Medoo.php on line 10
//
// string(36) "Table 'master.bccount' doesn't exist"
//
// array(3) {
// [0]=> string(5) "42S02"
// [1]=> int(1146)
// [2]=> string(36) "Table 'master.bccount' doesn't exist"
// }
PDO::ERRMODE_EXCEPTION
PDO एक PDOException फेंकता है और बाद के निष्पादन को रोक देता है, जो आपको विफल कोड पथों को शीघ्रता से पहचानने में मदद करता है।
$database = new Medoo([
// ...
'error' => PDO::ERRMODE_EXCEPTION
]);
$database->select("bccount", "*");
// यह पंक्ति निष्पादित नहीं होगी।
var_dump($database->error);
// Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found
// 1146 Table 'master.bccount' doesn't exist in /src/Medoo.php:10
// Stack trace:
// #0 /src/Medoo.php(564): PDOStatement->execute()
// #1 /src/Medoo.php(1652): Medoo\Medoo->exec(Object(PDOStatement), Array)
// #2 /var/www/playground/index.php(44): Medoo\Medoo->select('bccount', Array, Array)
// #3 {main}
// thrown in /src/Medoo.php line 10
// अपवाद संदेश को संभालने और प्रिंट करने के लिए try-catch का उपयोग करें।
try {
$database->select("bccount", "*");
} catch (PDOException $e) {
echo $e->getMessage();
}
// SQLSTATE[42S02]: Base table or view not found: 1146 Table 'master.bccount' doesn't exist
त्रुटि की जाँच हो रही है
PDO::ERRMODE_SILENT और PDO::ERRMODE_WARNING मोड में,
$database->error और $database->errorInfo तब null होते हैं जब कोई त्रुटि नहीं होती है। यह निर्धारित करने के लिए कि क्या कोई त्रुटि हुई है, आप null की जांच कर सकते हैं।$database->select("bccount", "*");
if ($database->error) {
echo "त्रुटि हुई।";
}
// त्रुटि हुई।
$database->select("account", "*");
if (!$database->error) {
echo "कोई त्रुटि नहीं।";
}
// कोई त्रुटि नहीं।