當面對返回 false 的 PDO 語句並使您對 var毫無頭緒時傾銷,記住這兩個黃金法則:
配置 PHP 和 PDO 以公開 MySQL 錯誤訊息。將以下行新增至您的連接程式碼:
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
或者,更好的是,包含此參數作為連接選項。這樣,資料庫錯誤將被轉換為 PDO 異常,就像常規 PHP 錯誤一樣。
取代帶問號的 SQL 查詢。然後,使用準備好的語句執行查詢:
$sql = $dbh->prepare('INSERT INTO users(full_name, e_mail, username, password) VALUES (?, ?, ?, ?)'); $result = $sql->execute(array($_GET['fullname'], $_GET['email'], $_GET['username'], $password_hash));
準備好的語句可防止語法錯誤並確保正確處理輸入資料。
PDO 異常將提供詳細的錯誤訊息來找出問題,將 MySQL錯誤訊息分解為類別:
調試技術可以幫助您識別前兩個類別。然而,執行錯誤是最常見的罪魁禍首,PDO 異常將使理解它們變得輕而易舉。
記住,相信錯誤訊息,因為它們準確地指出了問題。如果它指出表不存在,請仔細檢查您的拼字和資料庫連接。如果它反白顯示語法錯誤,請檢查引用的錯誤之前的 SQL 語句。
如果程式碼成功執行但沒有觀察到結果,則表示可能表示資料不符合選擇標準。按照連結教程中的說明找出問題並解決它。
以上是為什麼我的 PDO 語句默默失敗,如何除錯它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!