色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php pdo errorinfo

PHP PDO ErrorInfo – 介紹和實(shí)例

PHP PDO 提供了一個(gè)用于獲取任何 PDO 操作錯(cuò)誤信息的方法。它是PDO類的方法之一,并且可以應(yīng)用于任何 PDO 預(yù)處理狀態(tài)句柄。該方法會(huì)返回一個(gè)包含出錯(cuò)信息的數(shù)組,其中必含 3 個(gè)元素,每個(gè)元素都帶有相關(guān)信息。

下面是一段短小的 PDO 錯(cuò)誤示例,其中我們嘗試連接數(shù)據(jù)庫時(shí)打印查詢失敗的相關(guān)信息:

try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . " br/>";
die();
}

在這里,如果我們使用了一個(gè)錯(cuò)誤的用戶名、密碼或者用不可用的數(shù)據(jù)庫,連接就會(huì)失敗。這時(shí)候,錯(cuò)誤提示會(huì)自己輸出 pdo 錯(cuò)誤信息。它的輸出結(jié)果可以是類似于下面這樣的提示:

Error!: SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: YES)

除了上面這個(gè)例子中捕獲的PDOException以外,無論何時(shí)使用PDO處理數(shù)據(jù)庫操作時(shí)發(fā)生錯(cuò)誤,都會(huì)返回一個(gè)錯(cuò)誤碼。您可以使用 PDO Errorinfo 來執(zhí)行此操作,如下所示:

$stmt = $dbh->prepare("SELECT * FROM test WHERE id = ?");
if ($stmt->execute( array( $id ))) {
while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ) {
var_dump($row);
}
}
$err = $stmt->errorInfo();
if ($err[0] !== PDO::ERR_NONE) {
web_log('PDO Error: ' . $err[2] . '(', $err[0], ')');
}

在上述示例中,我們?cè)诓樵儓?zhí)行后檢查錯(cuò)誤信息。如果$stmt->execute返回一個(gè)操作失敗代碼,我們將從$stmt->errorInfo()數(shù)組中獲得錯(cuò)誤信息,然后將它們以易于閱讀的方式記錄在日志中。

這個(gè)errorInfo()數(shù)組就是我們這里要介紹的 PDO 錯(cuò)誤信息傳回的具體解釋信息。

errorInfo() 返回 PDOStatement 類的對(duì)象。您檢索出其中所有錯(cuò)誤的信息可以如下:

  • $errCode = $stmt->errorInfo()[0];
  • $errMSG = $stmt->errorInfo()[1];
  • $errInfo = $stmt->errorInfo()[2]; //錯(cuò)誤信息本身

每一個(gè)元素都是 PDOStatement 對(duì)象數(shù)組,它的意義如下:

  • 元素0 - SQLSTATE (錯(cuò)誤代碼) 錯(cuò)誤狀態(tài)碼如 SQLSTATE[HY000],每個(gè)類型語句會(huì)有不同的狀態(tài)碼。
  • 元素1 - 錯(cuò)誤代碼信息,對(duì)于數(shù)據(jù)庫廠商本身的錯(cuò)誤信息(例如 MySQL 返回的錯(cuò)誤代碼)。
  • 元素2 - 錯(cuò)誤信息本身。

錯(cuò)誤信息數(shù)組可以非常有用和緊湊。你可以立即獲得錯(cuò)誤信息細(xì)節(jié)(尤其是在調(diào)試時(shí))或在日常使用中查看確切的錯(cuò)誤信息(log 文件、調(diào)試日志和資源)。

總之,您可以在 PHP PDO 中使用 errorInfo() 獲取 PDO 數(shù)據(jù)庫操作的錯(cuò)誤信息。無論您需要在代碼中以何種方式記錄錯(cuò)誤信息,PDO ErrorInfo 都是一個(gè)非常有用的工具。所以,明確 PDO 錯(cuò)誤信息的數(shù)組的每個(gè)元素的意義,就可以開始記錄和調(diào)試 PDO 錯(cuò)誤。

上一篇c 隱藏div
下一篇css div最下