我的代码中出现了错误,但我没有发现错误...你能帮帮我吗? 这是我的代码:
$updt=$connect->prepare("INSERT INTO utilisateurs VALUES ('',:nom, :prenom, :email, :identifiant, MD5(:mdp)");
$updt->execute(array('nom'=>$nom,
'prenom'=>$prenom,
'email'=>$email,
'identifiant'=>$identifiant,
'mdp'=>$motDePasse
));
header('./gestion-utilisateur.php');</pre>
这就是错误:
Warning: PDOStatement::execute(): 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 '' at line 2 in...
提前感谢您的帮助。
答案 0 :(得分:0)
请改为尝试:
$updt=$connect->prepare("INSERT INTO utilisateurs VALUES ('',:nom, :prenom, :email, :identifiant, :mdp)");
$updt->execute(array('nom'=>$nom,
'prenom'=>$prenom,
'email'=>$email,
'identifiant'=>$identifiant,
'mdp'=>MD5($motDePasse)
));
header('./gestion-utilisateur.php');
答案 1 :(得分:0)
这可能会帮助你
$updt=$connect->prepare("INSERT INTO utilisateurs VALUES ('',:nom, :prenom, :email, :identifiant, MD5(:mdp))");
// I think u missed one parathesis at the last thats it ^
答案 2 :(得分:0)
在本声明中
$updt=$connect->prepare("INSERT INTO utilisateurs
VALUES ('',:nom, :prenom, :email,
:identifiant, MD5(:mdp)");
我认为您传递''
的第一个字段是自动增量字段,如id
。
当你没有将字段列表传递给查询时,你也要求MySQL找出自动添加数据的字段,它会通过查看模式并按顺序获取该表的字段名来实现。它们存储在架构中。这可能很危险,因为其他人很可能在架构中更改它们存储的顺序。
因此,最好添加要插入查询的字段名称。
MySQL将为您管理自动增量字段,但现在它知道应该从VALUE列表中插入数据的字段。
所以使用: -
$updt=$connect->prepare("INSERT INTO utilisateurs
(nom,prenom,email,identifiant,mdp)
VALUES (:nom, :prenom, :email,
:identifiant, MD5(:mdp)");