首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显然,从PHP发出的这个查询中有一个SQL Syntax错误,但它在PHPMyAdmin上运行良好

显然,从PHP发出的这个查询中有一个SQL Syntax错误,但它在PHPMyAdmin上运行良好
EN

Stack Overflow用户
提问于 2012-01-11 00:12:51
回答 2查看 239关注 0票数 1

这一切都在标题中。

我有这个SQL查询,我知道很难看,但它至少应该可以工作……当我在PHPMyAdmin中使用它时,它可以工作,但是当我从PHP中发送它时,我从MySQL得到一个语法错误。:(

代码语言:javascript
复制
INSERT INTO `shortname_revisions` (old_shortname , new_shortname) VALUES ('$old', '$new');

UPDATE `soft_data` SET shortname = REPLACE(shortname ,'$old', '$new');
UPDATE `shot_data` SET shortname = REPLACE(shortname ,'$old', '$new');
UPDATE `virus_scanning` SET shortname = REPLACE(shortname ,'$old', '$new');
UPDATE `lang_translations` SET shortname = REPLACE(shortname ,'$old', '$new');
UPDATE `ratings` SET shortname = REPLACE(shortname ,'$old', '$new');
UPDATE `file_data` SET shortname = REPLACE(shortname ,'$old', '$new');

当将$new$old变量粘贴到PHPMyAdmin中进行测试时,它们将包含任何字符串。以$old = "media-player"; $new = "video-player";为例。

此外,我不确定反勾的正确使用,以及它们应该在哪里,什么时候,也许这是问题的一部分。

对于每个询问这个错误的人,对不起,我没有发布它。我肯定不会去重新创建错误并将其粘贴到这里。这是一个非常普遍的错误,“你在某处大约这四分之一英里的代码中有一个语法错误”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-11 00:20:45

1)每条语句都需要在单独的mysql_query()调用中发送。

2)反引号很好,但不是必须的,因为这些表名中没有嵌入空格

3)我不知道您的数据结构,但是不带"where“子句的UPDATE可能会被认为是稍微不寻常的(除非它们是故意的单行表)

票数 5
EN

Stack Overflow用户

发布于 2012-01-11 00:25:41

为了保持代码的一致性,我倾向于总是去掉反标记,但这不会有什么不同,也不会导致错误。

如果代码在PHPmyadmin中运行,那么可能是$new$old的问题,尝试测试它将$new$old更改为设置值,例如$new="newtest"$old="oldtest",看看是否有效,如果有效,您知道变量的错误,如果是这样,请发布它们。

此外,您可能只想尝试一次更新,这可能是因为您试图在一个查询中一起更新所有内容,因此您会收到错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8806494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档