使用 PDO 時,透過準備好的語句執行 MySQL 查詢可能會有點棘手。讓我們深入研究所提出的問題並找出解決方案:
在提供的程式碼中,INSERT INTO 語句是使用prepare() 方法構造的,該方法準備語句但不執行它。要實際執行查詢並插入數據,必須呼叫execute()方法。
此外,當使用PDO準備好的語句時,必須在語句中使用佔位符(例如:name、:lastname) SQL 查詢而不是直接嵌入值。佔位符允許您稍後將值綁定到準備好的語句。這種方法透過防止 SQL 注入漏洞來增強安全性。
修正後的程式碼應如下所示:
$dbhost = "localhost"; $dbname = "pdo"; $dbusername = "root"; $dbpassword = "845625"; $link = new PDO("mysql:host=$dbhost;dbname=$dbname", "$dbusername", "$dbpassword"); $link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Set error mode to exception $statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES(:name, :lastname, :age)"); $statement->bindParam(':name', 'Bob'); $statement->bindParam(':lastname', 'Desaunois'); $statement->bindParam(':age', 18); $statement->execute();
透過使用佔位符並使用 bindParam() 綁定值,查詢可以正確執行並將資料插入資料庫。準備好的語句有助於防止 SQL 注入並確保資料的完整性。
以上是如何在 MySQL 中正確使用 PDO 準備語句進行 INSERT INTO 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!