这一切都在标题中。
我有这个SQL查询,我知道这很难看,但它应该至少有效......当我在PHPMyAdmin中使用它时它会工作但是当从PHP发送时我从MySQL得到语法错误。 :(
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');
粘贴到PHPMyAdmin进行测试时,$new
和$old
变量将包含任何字符串。使用$old = "media-player"; $new = "video-player";
作为示例。
此外,我不确定正确使用后蜱以及它们应该在何时以及何时,也许这是问题的一部分。
对于每个询问错误的人,抱歉,我没有发布。我肯定不会去重新创建错误以将其粘贴到此处。这是一个非常通用的“你在大约这个四分之一英里的代码中出现语法错误”错误。
答案 0 :(得分:5)
1)每个语句都需要在单独的mysql_query()调用中发送。
2)反引号很好但不必要,因为这些表名中没有嵌入的空格
3)我不知道你的数据结构,但没有“where”子句的UPDATE可以被认为是有点不寻常(除非这些是故意的单行表)
答案 1 :(得分:2)
为了保持代码的一致性,我倾向于总是删除返回刻度,但这不会产生影响并且不会导致错误。
如果代码在PHPmyadmin中有效,则可能是$new
和$old
的问题,请尝试对其进行测试,将$new
和$old
更改为设置值,例如$new="newtest"
和$old="oldtest"
,看看是否有效,如果你知道变量的错误,如果是这种情况就发布它们。
此外,您可能只想尝试一次更新,可能是因为您尝试在一个查询中一起更新所有内容时出现错误。