我编写了一个查询,它直接通过服务器上的MySQL工作,如下所示:
创建表tmp_1 (user1 varchar(255),pid int(11));插入
famgallery
.tmp_1
SETuser1
=(选择title
fromcpg15x_albums
aid
=(从pid=中选择援助(从pid=选择最大值(Pid)从cpg15x_pictures) );更新famgallery
.tmp_1
SETpid
=(从cpg15x_pictures选择最大值(Pid));更新cpg15x_pictures f,tmp_1 t SETpid
= f.user1,其中=;液滴表tmp_1;
问题在于试图将其迁移到PHP中:
Cpg_db_query(“创建表tmp_1 (user1 varchar(255),pid int(11));插入
famgallery
.tmp_1
SETuser1
=(选择title
FROMcpg15x_albums
WHEREaid
=(从cpg15x_pictures pid=(从cpg15x_pictures选择最大值(Pid))选择援助));更新famgallery
.tmp_1
SETpid
=(从cpg15x_pictures选择最大值(Pid));更新cpg15x_pictures f,tmp_1 t SET f.user1 = t.user1,其中f.pid = t.pid;DROP TABLE tmp_1;")
经过一天的实验,这个应用程序一直给我这个关键的错误:
mySQL错误:您的SQL语法出现了错误;请检查与MySQL服务器版本对应的手册,以获得正确的语法: ‘'INSERT cpg15x_tmp_1 SET
user1
=(从cpg15x_albums WHERE中选择title
’),在第1行。
我开始认为应用程序代码中的某个地方存在冲突,因为我不明白为什么它直接在服务器上正常工作,但是在经过这么多的修补之后,它在PHP中却不能工作。任何想法都将不胜感激。
cpg_db_query
内置于应用程序中。据我所知,它执行与mysqli_query
相同的操作。
相关档案:
发布于 2013-07-19 20:44:21
cpg_db_query
是mysql_query
的包装器;您将只运行一个查询--您正在尝试在那里运行多个查询。
如果要这样做,就必须将其分解为不同的查询,并分别运行它们:
cpg_db_query("CREATE TABLE cpg15x_tmp_1 (user1 varchar(255), pid int(11))");
cpg_db_query("INSERT INTO cpg15x_tmp_1 SET user1 = (SELECT title FROM cpg15x_albums WHERE aid = (SELECT aid FROM cpg15x_pictures WHERE pid = (select max(pid) from cpg15x_pictures)))");
cpg_db_query("UPDATE famgallery.cpg15x_tmp_1 SET pid = (SELECT MAX(pid) FROM cpg15x_pictures)");
cpg_db_query("UPDATE cpg15x_pictures f, cpg15x_tmp_1 t SET f.user1 = t.user1 WHERE f.pid = t.pid");
cpg_db_query("DROP TABLE cpg15x_tmp_1");
mysqli_*
有查询,这是我所知道的使用单个调用运行多个SQL查询的唯一方法。
发布于 2013-07-19 20:44:54
我不确定mysqli或cpg_db,但我知道mysql在一个提交中不支持多个查询。因此,如果要进行5次查询,就必须执行5次mysql_query。
我会检查一下,以确保cpg_db一次支持多个查询。
https://stackoverflow.com/questions/17755106
复制相似问题