J'essaie d'insérer plusieurs valeurs dans ma base de données avec une instruction préparée via ces deux requêtes, les deux requêtes échouent et renvoient l'une d'elles
Erreur non détectée : appel à la méthode non définie mysqli_stmt::bindValue()
Premier code ou
Uncaught ValueError : mysqli_stmt::execute() : paramètre n°1 ($params) Doit être un tableau de liste
Le deuxième. Quand je tape list
而不是 array
ça dit
Erreur de grammaire
RemarqueTous les noms de variables, de tables et de colonnes sont des variantes simplifiées
J'ai vu de nombreuses questions similaires mais aucune ne répond à ma question. Pas même celui-ci « répété ».
Quelqu'un a-t-il une solution, ou une alternative ?
Voici les deux 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'], ));
Comme l'indique le message d'erreur, vous utilisez la bibliothèque mysqli a> pour communiquer avec votre base de données. Cependant, votre code semble être basé sur un exemple utilisant PDO , qui est une bibliothèque complètement différente. Bien que certaines fonctions portent des noms superficiellement similaires, elles ont en réalité des API et des exigences différentes.
Par exemple, certaines différences entre les API sont :
?
Ce code doit être utilisé avec mysqli :
Si vous disposez de PHP 8.1 ou supérieur :
Sinon :