Saya cuba memasukkan berbilang nilai dalam pangkalan data saya dengan pernyataan yang disediakan melalui dua pertanyaan ini, kedua-dua pertanyaan gagal dan mengembalikan salah satu daripadanya
Ralat Tidak Ditangkap: Panggilan ke kaedah yang tidak ditentukan mysqli_stmt::bindValue()
Kod pertama atau
Uncaught ValueError: mysqli_stmt::execute(): Parameter #1 ($params) Mestilah susunan senarai
Yang kedua. Apabila saya menaip list
而不是 array
tertera
Kesilapan tatabahasa
NotaSemua pembolehubah, nama jadual dan lajur adalah variasi yang dipermudahkan
Saya telah melihat banyak soalan yang serupa tetapi tiada satu pun menjawab soalan saya. Tidak juga yang "ulang" ini.
Adakah sesiapa mempunyai penyelesaian, atau alternatif?
Berikut ialah dua kod:
if(isset($_POST['ID'], $_POST['atr1'])){ $sql = $db -> prepare("INSERT INTO some_table (ID, atr_place) VALUES (':fir', ':sec')"); $sql -> bindValue(':fir', $_POST['ID'],); $sql -> bindValue(':sec', $_POST['atr1'],); $sql -> execute(); }
$sql = $db -> prepare("INSERT INTO some_table (ID, atr_place) VALUES (:fir, :sec)"); $sql -> execute(array( ':fir' => $_POST['ID'], ':sec' => $_POST['atr1'], ));
Seperti yang ditunjukkan oleh mesej ralat, anda menggunakan perpustakaan mysqli a> untuk berkomunikasi dengan pangkalan data anda. Walau bagaimanapun, kod anda nampaknya berdasarkan contoh menggunakan PDO , iaitu perpustakaan yang berbeza sama sekali. Walaupun sesetengah fungsi mempunyai nama yang hampir sama, ia sebenarnya mempunyai API dan keperluan yang berbeza.
Sebagai contoh, beberapa perbezaan API ialah:
?
Kod ini harus digunakan dengan mysqli:
Jika anda mempunyai PHP 8.1 atau lebih tinggi:
Jika tidak: