2 pièce(s) jointe(s)
PDO, INSERT: Erreur que je ne m'explique pas
Bonjour à tous,
J'ai la fonction suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| function insertAddress(array $data): false|string
{
$db = dbConnect();
var_dump($data);
extract($data);
//exit;
$sql = <<<SQL
INSERT IGNORE INTO dat_addresses
('id_user', 'address', 'country', 'zipcode', 'locality' ,'homephone')
VALUES(':id_user', ':address', ':country', ':zipcode', ':locality', ':homephone')
SQL;
$array = [':id_user'=>$id_user, ':address'=>$address, ':country'=>$country, ':zipcode'=>$zipcode, ':locality'=>$locality, ':homephone'=>$homephone, ];
$stmt = $db->prepare($sql);
$stmt->execute($array);
return $db->lastInsertId();
} |
Cette fonction provoque l'erreur suivante:
Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
avec cette indication en dernière ligne de la pile "call stack" execute( $params = [':address' => '', ':country' => 'AL', ':zipcode' => '', ':locality' => '', ':homephone' => ''] )
or si je regarde bien ma fonction, j'ai bien 5 éléments bien orthographiés dans la requête et dans les paramètres.
L'image ci-dessous donne la structure de la table selon PhpMyAdmin:
Pièce jointe 646396