Cloud9环境下使用MySQL DATETIME格式出现SQL语法错误求助
解决MySQL INSERT语句的语法错误问题
嘿,我一眼就揪出问题啦!你遇到的语法错误和DATETIME格式半毛钱关系都没有,完全是SQL语句里的一个小拼写失误导致的。
问题根源
看你的MySQL插入语句:
$sql = "INSERT INTO Customer(customer_id, first_name, last_name, email, phone_home, phone_mobile, user_type_id, password, pasword_hashed, login) VALUES ('', '$first_name', '$last_name', '$email', '$phone_home', '$phone_mobile', '$user_type_id', '$password', '$password_hashed'. '$login')";
注意最后两个参数'$password_hashed'和'$login'之间用的是点号.,但MySQL要求VALUES列表里的参数必须用**逗号,**分隔,这才是触发语法错误的直接原因。
修正后的SQL语句
把点号改成逗号就搞定了:
$sql = "INSERT INTO Customer(customer_id, first_name, last_name, email, phone_home, phone_mobile, user_type_id, password, pasword_hashed, login) VALUES ('', '$first_name', '$last_name', '$email', '$phone_home', '$phone_mobile', '$user_type_id', '$password', '$password_hashed', '$login')";
额外提醒
- 你生成的DATETIME格式
YYYY-MM-DD HH:MM:SS完全符合MySQL官方要求,这部分没毛病,不用调整。 - 顺便说一句:直接把用户输入的变量拼进SQL语句里有SQL注入风险,建议用预处理语句(比如PDO或mysqli的
prepare方法)来构建SQL,安全性会高很多。
内容的提问来源于stack exchange,提问作者user6793735
相关产品推荐
相关产品推荐

