مشخصات مقاله
-
1829
-
0.0
-
2499
-
0
-
0
آموزش Error Mode Attributes در PHP
آموزش ویژگی حالت خطا Error Mode Attributes
PDO::ERRMODE در PHP
این ویژگی حالت گزارش خطا را کنترل می کند و سه مقدار می تواند داشته باشد.
PDO::ERRMODE_SILENT
PDO::ERRMODE_WARNING
PDO:ERRMODE_EXCEPTION
PDO::ERRMODE_SILENT در PHP
هنگامی که خطایی رخ می دهد، کد خطا را می توان با PDO::errorCode() یا PDO::errorInfo() بدست آورد. این مقدار پیش فرض برای PDO::ERRMODE است.
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
$sql = "SELECT * FROM booksa";
$q = $conn->query($sql) or die("ERROR: " . implode(":", $conn->errorInfo()));
$r = $q->fetch(PDO::FETCH_ASSOC);
print_r($r);
//result:
//ERROR: 42S02:1146:Table 'test.booksa' doesn't exist
?>
PDO::ERRMODE_WARNING در PHP
هیچ کاری انجام نمی شود ولی خطایی با درجه E_Warning صادر می شود.
// query
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$sql = "SELECT * FROM booksa";
$q = $conn->query($sql) or die("ERROR: " . implode(":", $conn->errorInfo()));
$r = $q->fetch(PDO::FETCH_ASSOC);
print_r($r);
//result:
//Warning: PDO::query() [function.PDO-query]: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.booksa' doesn't exist in
//C:\AppServ5\www\test\pdo\test.php on line 15
//ERROR: 42S02:1146:Table 'test.booksa' doesn't exist
PDO::ERRMODE_EXCEPTION در PHP
کد های خطا را قرار می دهد (مانند PDO::ERRMODE_SILENT) و یک exception از کلاس PDOException صادر می شود.
// query
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM booksa";
$q = $conn->query($sql) or die("ERROR: " . implode(":", $conn->errorInfo()));
$r = $q->fetch(PDO::FETCH_ASSOC);
print_r($r);
//result:
//Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.booksa' doesn't exist' in
//C:\AppServ5\www\test\pdo\test.php:15 Stack trace: #0 C:\AppServ5\www\test\pdo\test.php(15): PDO->query('SELECT * FROM b...') #1 {main} thrown in
//C:\AppServ5\www\test\pdo\test.php on line 15
1394/07/27
2499
1829
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com