$sql = 'INSERT INTO employee (cin,nom) VALUES(:cin,:nom)';
try{
$requete=$db->query($sql);
$requete->bindValue(':cin',$emp->GetCin(),PDO::PARAM_STR);
$requete->bindValue(':nom',$emp->GetNom(),PDO::PARAM_STR);
$requete->execute();
}
catch(Exception $e)
{
die("erreur".$e->getMessage());
}
При выполнении этого кода возникает следующая ошибка:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':cin,:nom)'
Как исправить?






$db->query() выполняет запрос как есть.
Для используемого вами запроса необходимо сначала подготовить оператор, связать параметры, а затем выполнить запрос. В противном случае кортеж после VALUES интерпретируется как данные.
Чтобы исправить это, используйте $db->prepare(). (Документы)
$requete=$db->prepare($sql);
$requete->bindValue(':cin',$emp->GetCin(),PDO::PARAM_STR);
$requete->bindValue(':nom',$emp->GetNom(),PDO::PARAM_STR);
$requete->execute();
я хочу вставить сотрудника в базу данных