我是PHP& MySQL和我收到错误,我不明白我的查询中的错误是什么?基本上我允许用户填写此表单并提交。表单提交后应该进入MySQL数据库,在myphp上,Insertion的代码工作正常但在我的网站上却给我发错了。
这是我得到的错误:
错误:您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以便在' @ gmail.com)附近使用正确的语法,AF_Name = VALUES('一个人的名字'),V_City = VALU'在第7行
提交表单后,它移动到另一个PHP页面。我希望它留在表格存在的页面上。这个代码&表格在不同的PHP页面上。
这是我的代码:
<?php
$con = mysql_connect(host, User_Name, Password, DB_Name);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("user", $con);
$sql="INSERT INTO request (RF_Name, RL_Name, R_Email, AF_Name, V_City, V_Country, Time, Date, Message)
VALUES
('$_POST[RFname]', '$_POST[RLname]', '$_POST[sender]', '$_POST[AFname]', '$_POST[Vcity]', '$_POST[Vcountry]', '$_POST[time]', '$_POST[date]', '$_POST[body]')
ON DUPLICATE KEY UPDATE
RF_Name = VALUES($_POST[RFname]),
RL_Name = VALUES($_POST[RLname]),
R_Email = VALUES($_POST[sender]),
AF_Name = VALUES($_POST[AFname]),
V_City = VALUES($_POST[Vcity]),
V_Country = VALUES($_POST[Vcountry]),
Time = VALUES($_POST[time]),
Date = VALUES($_POST[date]),
Message = VALUES($_POST[body])";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
答案 0 :(得分:0)
更新时将您的值括在引号中:
RF_Name = VALUES('$_POST[RFname])',
RL_Name = VALUES('$_POST[RLname]'),
R_Email = VALUES('$_POST[sender]'),
AF_Name = VALUES('$_POST[AFname]'),
V_City = VALUES('$_POST[Vcity]'),
V_Country = VALUES('$_POST[Vcountry]'),
Time = VALUES('$_POST[time]'),
Date = VALUES('$_POST[date]'),
Message = VALUES('$_POST[body]')
答案 1 :(得分:0)
应该是
R_Email = VALUES(R_Email)
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
您需要建议的R_email列的值
正如其他人所说,你需要保护自己免受SQL注入,并考虑将mysql_ *函数升级到Mysqli或PDO
答案 2 :(得分:0)
您的问题是您没有清理查询参数。尝试将PDO或mysqli_ *与参数化查询一起使用。这将确保您的参数在查询中正确编码,并且不会弄乱语法。