Bonjour,
J'ai un problème pour l'insertion alors que le nombre de champs dans ma requête correspond bien au nombre de champs dans ma table: id, nom, email, telephone, adresse, ville cp, ddeConcerne, fonctionnalites et message.
Ma requête:
$sql = 'INSERT INTO devis_clients VALUES (?,?,?,?,?,?,?,?,?,?)';
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param('sssssssss', $nom, $email, $telephone, $adresse, $ville, $cp, $ddeConcerne, $fonctionnalites, $message);
$stmt->execute();
} else {
$error = $mysqli->errno.' '.$mysqli->error;
echo $error;
}
J'obtiens l'erreur: 1136 Column count doesn't match value count at row 1
Je vous remecie de votre aide
Bonjour,
Une relecture de la doc de "bind_param" s'impose,
il faut autant de "s" que de "?"
merci j'ai donc lu la documentation et ajouté autant de paramètres "s" qu'il e faut et malgré tout j'ai toujours la même erreur.
$sql = 'INSERT INTO devis_clients VALUES (?,?,?,?,?,?,?,?,?,?)';
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param('sssssssss', $nom, $email, $telephone, $adresse, $ville, $cp, $ddeConcerne, $fonctionnalites, $message);
$stmt->execute();
} else {
$error = $mysqli->errno.' '.$mysqli->error;
echo $error;
}
compte le nombre de "?", compte le nombre de "s" et compte le nombre de paramètre dans bin_param....
je vois de vois que tu as éditer ton 1er message, ce n'est pas sympa car du coup, on ne connais pas le code d'origine et on perds le fil de la conversation
Je viens de l'éditer car je ne savais pas comment faire et j'ai juste ajouté les"s" manquants car il n'y en n'avait qu'un mais là je suis sur mon pc et c'est plus pratique donc j'ai aussi enlevé un "?" donc 9 "s" et 9 "?"
$sql = 'INSERT INTO devis_clients VALUES (?,?,?,?,?,?,?,?,?)';
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param('sssssssss', $nom, $email, $telephone, $adresse, $ville, $cp, $ddeConcerne, $fonctionnalites, $message);
$stmt->execute();
} else {
$error = $mysqli->errno.' '.$mysqli->error;
echo $error;
}
et toujours la même erreur
j'en compte 10 de "?" dans le 1er code
$stmt->execute(); retourne true en cas de succès et false en cas d'achec, qu'elle retour obtiens-tu ?
Si false alors là il faur lire la valeur de https://www.php.net/manual/fr/mysqli-stmt.error.php