我正在使用XMLHttpRequests调用服务器上的一个PHP脚本,但是查询仍然失败。我已经重写了几次,我是不是走错了路?我研究过语句,并看到它们以非常相似的方式编写。
$query = mysql_query("UPDATE arts SET a_id=((SELECT a_id FROM logs
WHERE unique='{$_GET['unique']}') + ',' + (SELECT id
FROM mf_arts WHERE art='{$_GET['url']}'))
WHERE unique='{$_GET['id']}'");
if(!$query)
{
$fquery = mysql_query("INSERT INTO mf_arts (art,name)
VALUES('{$_GET['url']}','{$_GET['name']}');
UPDATE mf_logs SET a_id=((SELECT a_id FROM mf_logs
WHERE unique='{$_GET['id']}') + ',' + (SELECT id FROM
mf_arts WHERE art='{$_GET['url']}'))
WHERE unique='{$_GET['id']}'");
if(!$fquery) echo("ADD IMPOSSIBRU");
} else echo "1";我觉得我错过了一个很小但很重要的部分。我最初试着使用IF EXISTS,但我一直遇到同样的问题,所以我试图将其简化为一条接一条语句的层次结构。老实说,谢谢你的帮助。StackOverflow很棒。
发布于 2012-02-28 10:46:51
mysql_query中不允许多个查询。在清理用户输入之后,尝试将它们分开
if(!$query)
{
mysql_query("INSERT INTO mf_arts (art,name)
VALUES('{$_GET['url']}','{$_GET['name']}')")
or die("ADD IMPOSSIBRU");
mysql_query("UPDATE mf_logs SET a_id=((SELECT a_id FROM mf_logs
WHERE `unique`='{$_GET['id']}') + ',' + (SELECT id FROM
mf_arts WHERE art='{$_GET['url']}'))
WHERE `unique`='{$_GET['id']}'")
or die("ADD IMPOSSIBRU - Update");
echo "1";
}发布于 2012-02-28 10:40:29
唯一是保留字请参阅: dev.mysql.com/doc/refman/5.5/en/reserved-words.html
要么避免它,最好的选择,要么用反勾号把它括起来
发布于 2012-02-28 10:46:39
unique是保留关键字,如上所述,使用(),如下所示:
WHERE `unique`='{$_GET['unique']}'https://stackoverflow.com/questions/9475550
复制相似问题