这一切都在标题中。
我有这个 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";
作为示例。
此外,我不确定反引号的正确使用以及它们应该在何处以及何时使用,也许这就是问题的一部分。
对于所有询问错误的人,抱歉,我没有发布它。而且我肯定不会去重新创建错误以将其粘贴到此处。这是一个非常普遍的错误“你在大约这四分之一英里的代码中有一个语法错误”。
最佳答案
1) 每个语句都需要在单独的 mysql_query() 调用中发送。
2) 反引号很好但没有必要,因为在任何这些表名中都没有嵌入空格
3) 我不知道你的数据结构,但是没有“where”子句的 UPDATE 可以被认为是有点不寻常(除非这些是故意的单行表)
关于php - 显然,从 PHP 发送时此查询中存在 SQL 语法错误,但它在 PHPMyAdmin 上运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8806494/