你好我昨天在这里遇到这个问题,我真的不知道如何使用这个网站,因为我是新的,所以我转发。但我在这段代码中遇到错误,我认为它的Update查询包含语法错误。
//更新玩家的记录是否已存在
$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服务器版本对应的手册,以便在'INT ='1'附近使用正确的语法,YDS = '86',RTG = '52 .5',Team ='ARI'WHERE Name ='Bartel,Richard''在第1行
答案 0 :(得分:2)
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'
答案 1 :(得分:1)
两件事:
查看INSERT ... ON DUPLICATE KEY UPDATE
的手册,该手册应在一个声明中执行此操作。
我建议您仔细查看PHP中的mysql_real_escape_string()或类似内容,以逃避数据并阻止SQL注入。
如果你不知道SQL注入是什么,那么谷歌它并花一点时间现在阅读它为时已晚,而且一些cracker或script kitty有你的数据库。
希望这有帮助!
答案 2 :(得分:0)
您可能想查看这些网站。 http://www.w3schools.com/php/php_mysql_update.asp http://www.tizag.com/mysqlTutorial/mysqlupdate.php
您可能还想查看拼写错误或单引号或双引号。除此之外,请检查数据库命名和数据类型。