Ich versuche, mit einer vorbereiteten Anweisung über diese beiden Abfragen mehrere Werte in meine Datenbank einzufügen. Beide Abfragen schlagen fehl und geben einen von ihnen zurück
Ungefangener Fehler: Aufruf der undefinierten Methode mysqli_stmt::bindValue()
Erster Code oder
Ungefangener ValueError: mysqli_stmt::execute(): Parameter #1 ($params) Muss ein Listenarray sein
Der Zweite. Wenn ich list
而不是 array
tippe, steht
Grammatikfehler
HinweisAlle Variablen-, Tabellen- und Spaltennamen sind vereinfachte Varianten
Ich habe viele ähnliche Fragen gesehen, aber keine davon beantwortet meine Frage. Nicht einmal diese „Wiederholung“.
Hat jemand eine Lösung oder eine Alternative?
Hier sind die beiden Codes:
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'], ));
正如错误消息所表明的那样,您正在使用 mysqli a> 与您的数据库进行通信的库。但是,您的代码似乎基于使用 PDO 的示例,其中是一个完全不同的图书馆。虽然表面上一些函数名称相似,但实际上它们具有不同的 API 和要求。
例如,一些 API 差异是:
?
指定的匿名占位符此代码应该与 mysqli 一起使用:
如果您有 PHP 8.1 或更高版本:
否则: