參考:常見 PDO 問題
什麼是 PDO?
PHP 資料物件 (PDO) )是PHP中的資料庫抽象層,為存取各種資料庫提供一致且可移植的介面系統。
常見問題
1. PDO 查詢失敗但沒有錯誤訊息
要顯示資料庫錯誤,請將PDO 錯誤模式設定為異常:
$dsn = "mysql:host=$host;dbname=$db;charset=utf8"; $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]; $pdo = new PDO($dsn, $user, $pass, $opt);
使用try-catch區塊優雅地處理錯誤或定義一個自訂錯誤處理程序以實現更多控制。
2.使用 LIKE 運算子的準備語句
使用佔位符作為搜尋字並使用 PDO::quote() 轉義 LIKE 運算子。例如:
$stmt = $pdo->prepare("SELECT * FROM users WHERE name LIKE ?"); $stmt->execute(['%search_term%']);
3。 IN () 運算子的準備語句
建立一個值數組並將其作為第二個參數傳遞給bindParam():
$values = [1, 2, 3]; $stmt = $pdo->prepare("SELECT * FROM users WHERE id IN (?)"); $stmt->bindParam(1, $values, PDO::PARAM_INT, count($values)); $stmt->execute();
4。綁定識別碼或關鍵字
Prepared statements 不能用於綁定識別碼或關鍵字。使用普通的 PDO 方法,例如 PDO::quote() 來轉義和保護這些值。
5. LIMIT 語句中的PDO 準備語句
$stmt = $pdo->prepare("SELECT * FROM users ORDER BY id LIMIT ?"); $stmt->bindParam(1, $limit, PDO::PARAM_INT); $stmt->execute([$limit]);
請記住不建議在沒有try-catch 區塊的情況下顯示錯誤訊息,因為它可能會洩露敏感資訊並使用戶感到困惑。
以上是如何在PHP中有效地使用PDO來處理資料庫查詢和錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!