Setelah Anda mengambil semua hasil dalam loop eksekusi Anda, Anda harus mendapatkan rowset berikutnya dan kemudian menutup kursor sebelum mencoba menjalankan prosedur tersimpan lagi. Coba ini:
foreach($data_arr AS $key => $val){
$values = $val;
$stmt->execute();
$res = $stmt->fetchAll();
$stmt->nextRowset(); // NEW: Get the next rowset after fetching your results
$stmt->closeCursor(); // NEW: Close the cursor
}
Tambahan yang sangat penting di sini adalah panggilan ke nextRowSet() . Di bawah tenda, PDO mengembalikan rowset kedua yang perlu Anda akses sebelum menjalankan prosedur tersimpan kedua (dan selanjutnya) pada koneksi yang sama.