zu verwenden, damit der Benutzer seine eigenen Daten sortieren kann. Sagen wir, ich habe mehrere Tiere in jeder Reihe mit einer eigenen Uniqe ID. Dann lasse ich den Benutzer die Tiere mit einer Nummer von 1 bis x sortieren. Um dies zu tun, muss ich mehrere Zeilen in meiner SQL-Tabelle aktualisieren. Ich machte Id
uniqe. Und dann habe ich versucht, diese SQL-Satz (das ist, was die SQL zu laufen versucht, meine eigentliche PHP-Code unter diesem Code ist)Bei der Aktualisierung mehrerer Zeilen tritt ein Fehler auf und versucht, ON DUPLICATE KEY
INSERT INTO boka_homeworktasks (Id,Sort) VALUES (29 ,1),(38 ,2),(30 ,3),(31 ,4),(32 ,5),(33 ,6),(34 ,7),(35 ,8),(36 ,9),(37 ,10),(39 ,11),(40 ,12),(41 ,13),(42 ,14),(43 ,15),(44 ,16),(45 ,17) ON DUPLICATE KEY UPDATE Sort=VALUES(1),Sort=VALUES(2),Sort=VALUES(3),Sort=VALUES(4),Sort=VALUES(5),Sort=VALUES(6),Sort=VALUES(7),Sort=VALUES(8),Sort=VALUES(9),Sort=VALUES(10),Sort=VALUES(11),Sort=VALUES(12),Sort=VALUES(13),Sort=VALUES(14),Sort=VALUES(15),Sort=VALUES(16),Sort=VALUES(17);
eigentlich mein Code sieht wie folgt aus:
$arrsorter = $_POST["sorter"];
for ($x=0;$x < count($arrsorter);$x++){
$sql_sentence .= '(?,' . ($x + 1) . '),';
array_push($arrparams, $arrsorter[$x]);
$sql_sentence2 .= 'Sort=VALUES('. ($x + 1) .'),';
}
$sql_sentence = 'INSERT INTO boka_homeworktasks (Id,Sort) VALUES '. substr($sql_sentence,0,-1) .' ON DUPLICATE KEY UPDATE '. substr($sql_sentence2,0,-1) . ';' ;
$sql = $conn->prepare($sql_sentence);
$sql->bind_param(str_repeat("i", count($arrparams)), ...$arrparams);
$sql->execute();
und ich bekomme diese Fehler:
Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in myfile.php:35 Stack trace: #0 {main} thrown in myfile.php on line 35
Linie 35 ist $sql->bind_param(str_repeat("i", count($arrparams)), ...$arrparams);
ich kann nichts sehen Ich habe Unrecht getan, oder? Warum kann ich meine Tabelle nicht aktualisieren?