کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش 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 2495 1827
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...