PDO MySQL:如何在一個查詢中插入多行而不出現「陣列到字串轉換」錯誤?

Susan Sarandon
發布: 2024-11-07 04:57:02
原創
625 人瀏覽過

PDO MySQL: How to Insert Multiple Rows in One Query Without

PDO MySQL:在一個查詢中插入多行

問題:

在為多次插入而設計的PDO 類別中,儘管建立了參數化查詢,但執行查詢時仍會出現「陣列到字串轉換」錯誤。如何解決此錯誤?

答案:

要解決此錯誤,一種方法是迭代資料數組並使用bindValue 而不是綁定整個數組。這可確保每個值正確綁定到特定參數。

以下是實現此方法的範例:

$query = "INSERT INTO $table (key1, key2, key3) VALUES ";
$qPart = array_fill(0, count($data), "(?, ?, ?)");
$query .= implode(",", $qPart);
$stmt = $this->start->prepare($query);
$i = 1;
foreach ($data as $item) { 
    $stmt->bindValue($i++, $item['key1']);
    $stmt->bindValue($i++, $item['key2']); 
    $stmt->bindValue($i++, $item['key3']);
}
$stmt->execute();
登入後複製
或者,您可以使用

foreach 循環在準備語句中為每一行綁定值:

$stmt = $pdo->prepare("INSERT INTO foo VALUES (1, 2, 3)");
foreach($data as $item) {
    $stmt->execute($item);
}
登入後複製
此方法會執行多次查詢,每行一次。不過,它比前一種方法更容易實現。

以上是PDO MySQL:如何在一個查詢中插入多行而不出現「陣列到字串轉換」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!