首頁 >資料庫 >mysql教程 >如何在 PHP 中使用 PDOprepare() 檢索和處理查詢準備錯誤?

如何在 PHP 中使用 PDOprepare() 檢索和處理查詢準備錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-23 09:22:18937瀏覽

How Can I Retrieve and Handle Query Preparation Errors Using PDO prepare() in PHP?

從PDO PHP 中的prepare()檢索查詢錯誤

使用PDO PHP 時,您可能會遇到需要處理錯誤的情況在查詢準備期間發生的情況。以下程式碼片段嘗試使用prepare()方法準備查詢,但如果失敗,您可能需要有關錯誤的其他資訊:

$st = $db->prepare("SELECT * FROM c6ode");

要檢索查詢的預期MySQL錯誤,您需要請遵循具體步驟:

  1. 設定錯誤模式:
    設定使用setAttribute() 方法向PDO::ERRMODE_EXCEPTION 回報 PDO 錯誤模式。此步驟使 PDO 物件能夠在發生錯誤時拋出異常。
  2. 停用模擬準備(選用):
    預設情況下,PDO 模擬準備好的語句準備。為了確保 MySQL 伺服器確實收到驗證語句,請透過將 PDO::ATTR_EMULATE_PREPARES 設定為 false 來停用此功能。

以下是示範這些步驟的範例程式碼片段:

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->prepare('INSERT INTO DoesNotExist (x) VALUES (?)');
?>

上面的程式碼會導致拋出例外,如下圖message:

SQLSTATE[42S02]: Base table or view not found: 
1146 Table 'test.doesnotexist' doesn't exist

按照以下步驟,您可以使用PDO PHP 中的prepare()方法有效地檢索和處理查詢準備期間發生的錯誤。

以上是如何在 PHP 中使用 PDOprepare() 檢索和處理查詢準備錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn