你好,我昨天在这里有这个问题,我真的不知道如何使用这个网站,因为我是新的,所以我转发。但是我得到一个错误与这段代码,我认为它的更新查询包含一个语法错误。
//更新如果玩家的记录已经存在
$result = mysql_query("UPDATE PlayerStat SET Position='$POS', Number='$NUM', Name='$PlyrName', Status='$Status', TDS='$TDS', INT='$INT', YDS='$YDS', RTG='$RTG', Team='$Team' WHERE Name='$PlyrName'");
echo mysql_error();
if (mysql_affected_rows()==0){
// Populates table if record is non existent
$result = mysql_query("INSERT INTO PlayerStat(`Position`, `Number`, `Name`, `Status`, `TDS`, `INT`, `YDS`, `RTG`, `Team`) VALUES ('$POS','$NUM','$PlyrName','$Status','$TDS','$INT','$YDS','$RTG','$Team')");
echo mysql_error();
}
错误信息
你的SQL语法有错误;检查与你的MySQL服务器版本对应的手册,以便在第1行'INT='1', YDS='86', RTG='52.5', Team='ARI' WHERE Name='Bartel, Richard "附近使用正确的语法
INT在mysql中是一个关键字(声明和整数),如果它是你的列名,你应该把它括起来,像这样:' INT ' .
虽然不是在所有情况下都需要,但把这些放进去是很好的做法
UPDATE
PlayerStat
SET
`Position` = '$POS',
`Number` = '$NUM',
`Name` = '$PlyrName',
`Status` = '$Status',
`TDS` = '$TDS',
`INT` = '$INT',
`YDS` = '$YDS',
`RTG` = '$RTG',
`Team` = '$Team'
WHERE
`Name` = '$PlyrName'
两件事:
-
检查
INSERT ... ON DUPLICATE KEY UPDATE
的手册,它应该在一个语句中完成。 -
我建议你仔细看看mysql_real_escape_string()或类似的PHP来逃避你的数据和防止SQL注入。
如果你不知道SQL注入是什么,然后谷歌它,花一点时间阅读现在之前,它太迟了,一些黑客或脚本小猫有你的数据库。
希望这对你有帮助!
你可能想看看这些网站。http://www.w3schools.com/php/php_mysql_update.asphttp://www.tizag.com/mysqlTutorial/mysqlupdate.php
你可能还想检查你的拼写错误或单引号或双引号。除此之外,检查数据库名称和数据类型。