將準備好的語句與INSERT INTO 合併
在遍歷PHP 的迷宮深處:資料物件時,在嘗試執行MySQL 時出現了一個令人困惑的難題使用準備好的語句進行查詢,特別是用於INSERT INTO 運算。考慮下面的程式碼片段:
$statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES('Bob','Desaunois','18')"); $statement->execute();
儘管遵循了所謂的規定方法,資料庫仍然頑固地保持著荒涼。讓我們來探索阻礙我們進步的缺失元素。
釋放 INSERT INTO 查詢準備語句潛力的關鍵在於參數綁定,這是一種允許將值安全且動態地整合到查詢中的技術。 SQL 語句。這是透過將佔位符合併到查詢中並隨後在執行期間以關聯數組的形式提供相應的值來實現的。
觀察修改後的程式碼:
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (:fname, :sname, :age)'); $statement->execute([ 'fname' => 'Bob', 'sname' => 'Desaunois', 'age' => '18', ]);
注意參數名稱的存在,'查詢中的 :fname'、':sname' 和 ':age'。這些用作實際值的佔位符,然後在execute() 函數中作為關聯數組提供。
或者,您可以使用「?」語法作為佔位符並傳遞值數組而不指定參數名稱:
$statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (?, ?, ?)'); $statement->execute(['Bob', 'Desaunois', '18']);
兩種方法都有各自的優點和缺點。使用命名參數可以增強可讀性,而「?」語法簡化了綁定值的過程。不過,最終兩者之間的選擇取決於個人喜好。
以上是如何在 PHP 中正確使用 INSERT INTO 準備好的語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!