首頁 > 資料庫 > mysql教程 > 為什麼我的 PDO 準備語句無法將資料插入 MySQL?

為什麼我的 PDO 準備語句無法將資料插入 MySQL?

Barbara Streisand
發布: 2025-01-13 06:14:42
原創
187 人瀏覽過

Why Are My PDO Prepared Statements Failing to Insert Data into MySQL?

對 MySQL 中的 PDO 準備語句插入進行故障排除

將 PHP 的 PDO 與 MySQL 準備好的語句結合使用可提供安全性和效率,但可能會出現插入問題。本指南解決了一個常見問題:儘管程式碼看似正確,但插入失敗。

問題:INSERT嘗試後資料庫為空

讓我們檢查一個場景,其中 INSERT 使用準備好的語句不會填入資料庫:

$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES('Bob','Desaunois','18')");
$statement->execute();
登入後複製

此程式碼看似有效,但 testtable 仍然為空。

解:參數綁定

解涉及正確綁定參數。 PDO 準備好的語句需要 SQL 查詢中的佔位符 - 命名參數 (:param) 或問號 (?)。 然後,在 execute() 方法期間用值填入這些佔位符。

以下是使用這兩種方法修復程式碼的方法:

// Using Named Parameters
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (:fname, :sname, :age)');
$statement->execute(['fname' => 'Bob', 'sname' => 'Desaunois', 'age' => '18']);

// Using Question Mark Placeholders
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (?, ?, ?)');
$statement->execute(['Bob', 'Desaunois', '18']);
登入後複製

透過利用參數綁定,您可以確保安全插入數據,降低 SQL 注入風險並保持資料完整性。 這些值在執行期間被正確替換到查詢中。

以上是為什麼我的 PDO 準備語句無法將資料插入 MySQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板