Rumah > pangkalan data > tutorial mysql > PDO MySQL: Bagaimana untuk Memasukkan Berbilang Baris dalam Satu Pertanyaan Tanpa Ralat 'Penukaran Array ke rentetan'?

PDO MySQL: Bagaimana untuk Memasukkan Berbilang Baris dalam Satu Pertanyaan Tanpa Ralat 'Penukaran Array ke rentetan'?

Susan Sarandon
Lepaskan: 2024-11-07 04:57:02
asal
705 orang telah melayarinya

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

PDO MySQL: Masukkan Berbilang Baris dalam Satu Pertanyaan

Soalan:

Dalam kelas PDO yang direka untuk berbilang sisipan, walaupun mencipta pertanyaan berparameter, ralat "Penukaran tatasusunan kepada rentetan" berlaku semasa melaksanakan pertanyaan. Bagaimanakah ralat ini boleh diselesaikan?

Jawapan:

Untuk menyelesaikan ralat ini, satu pendekatan adalah untuk mengulang melalui tatasusunan data dan mengikat nilai satu demi satu menggunakan bindValue bukannya mengikat keseluruhan tatasusunan. Ini memastikan bahawa setiap nilai diikat dengan betul pada parameter tertentu.

Berikut ialah contoh pelaksanaan pendekatan ini:

$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();
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan gelung foreach di dalam pernyataan sediakan untuk mengikat nilai bagi setiap baris:

$stmt = $pdo->prepare("INSERT INTO foo VALUES (1, 2, 3)");
foreach($data as $item) {
    $stmt->execute($item);
}
Salin selepas log masuk

Pendekatan ini melaksanakan pertanyaan beberapa kali, satu untuk setiap baris. Walau bagaimanapun, ia lebih mudah untuk dilaksanakan berbanding pendekatan sebelumnya.

Atas ialah kandungan terperinci PDO MySQL: Bagaimana untuk Memasukkan Berbilang Baris dalam Satu Pertanyaan Tanpa Ralat 'Penukaran Array ke rentetan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan