Php MySQL插入错误
好的,当尝试插入数据库时,我得到了这个错误 “您的SQL语法有错误; 检查相应的手册 您的MySQL服务器版本 在“@email.com”附近使用正确的语法, UT,84505,NOW(),69.169.186.192)“在 第1行“ 我想不出这个问题。这是我的insert语句的代码Php MySQL插入错误,php,mysql,mysql-error-1064,Php,Mysql,Mysql Error 1064,好的,当尝试插入数据库时,我得到了这个错误 “您的SQL语法有错误; 检查相应的手册 您的MySQL服务器版本 在“@email.com”附近使用正确的语法, UT,84505,NOW(),69.169.186.192)“在 第1行“ 我想不出这个问题。这是我的insert语句的代码 $insert_query = sprintf("INSERT INTO contacts (first_name, last_name, email, state, zip, date, ip) VALUES (
$insert_query = sprintf("INSERT INTO contacts (first_name, last_name, email, state, zip, date, ip) VALUES (%s, %s, %s, %s, %s, NOW(), %s)",
$fname,
$lname,
$email,
$state,
$zip,
$ip);
$result = mysql_query($insert_query, $connection) or die(mysql_error());
我的表具有以下结构:
id int(11)
first_name varchar(100)
last_name varchar(100)
email varchar(100)
state varchar(3)
zip int(10)
date datetime
ip varchar(255)
您需要在insert语句中引用所有字符串类型列。将
%s
替换为sprintf格式的'%s'
如果您还没有这样做,请阅读有关SQL注入的内容。如果您可以回显$insert\u查询,这会有所帮助,但看起来您没有在VARCHAR参数周围加引号
$insert_query = sprintf("INSERT INTO contacts (first_name, last_name, email, state, zip, date, ip) VALUES ('%s', '%s', '%s', '%s', '%s', NOW(), '%s')",
$fname,
$lname,
$email,
$state,
$zip,
$ip);
顺便说一下,您的insert中有一个额外的列-现在看起来与列无关。
顺便说一下,我假设ZIP是一个varchar列,而不是一个数字。这可能会对您有所帮助
$insert_query = "INSERT INTO contacts set first_name = '$fname', last_name = '$lname', email = '$email', state = '$state', zip = '$zip', date = ". time() .", ip = '$ip')";
$result = mysql_query($insert_query, $connection) or die(mysql_error());
如果要检查查询
echo $insert_query;
这是$insert\u query insert INTO contacts(名字、姓氏、电子邮件、状态、邮政编码、日期、ip)值(你、我、,a@a.com,AL,12345,NOW(),69.169.186.192)是的,你需要按照Mat的建议去做。将编辑我的答案以反映。是的,这是一个varchar,你是对的。这修正了我的错误。谢谢你的回答。太好了。这就成功了。在前面的代码中,我在每个变量上使用了mysql\u real\u escape\u string()。这不是正确的方法吗?好的。非常感谢你的帮助。我对整个程序设计都不熟悉。我将阅读更多关于SQL注入的内容,这样我就不会再犯这个错误,并确保我的网站安全!我感谢大家的迅速反应。