我写了一个查询,它直接在服务器上通过MySQL工作:
CREATE TABLE tmp_1(user1 varchar(255),pid int(11)); INSERT INTO
famgallery
。tmp_1
SETuser1
=(SELECTtitle
FROM {{ 1}} WHEREcpg15x_albums
=(SELECT援助来自cpg15x_pictures WHERE pid =(从cpg15x_pictures中选择max(pid)))); 更新aid
。famgallery
SETtmp_1
=(SELECT MAX(pid)FROM cpg15x_pictures) ;更新cpg15x_pictures f,tmp_1 t SET f.user1 = t.user1 WHERE f.pid = t.pid; DROP TABLE tmp_1;
问题来自尝试将其移至PHP:
cpg_db_query(“CREATE TABLE tmp_1(user1 varchar(255),pid int(11)); INSERT INTO
pid
。famgallery
SETtmp_1
=(SELECTuser1
FROMtitle
WHEREcpg15x_albums
=(SELECT援助来自cpg15x_pictures WHERE pid =(从cpg15x_pictures中选择max(pid)))); 更新aid
。famgallery
SETtmp_1
=(SELECT MAX(pid)FROM cpg15x_pictures) ;更新cpg15x_pictures f,tmp_1 t SET f.user1 = t.user1 WHERE f.pid = t.pid; DROP TABLE tmp_1;“)
经过一天的实验,应用程序不断给我这个严重的错误:
mySQL错误:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在附近使用正确的语法:
pid
我开始认为应用程序代码中某处存在冲突,因为我无法理解为什么它直接在服务器上正常工作,但在经过这么多的修改之后无法在PHP中工作。任何想法都将不胜感激。
'INSERT INTO cpg15x_tmp_1 SET `user1` = (SELECT `title` FROM cpg15x_albums WHERE ' at line 1. File: /home/content/47/9243147/html/family/include/functions.inc.php - Line: 270
内置于应用程序中。据我所知,它执行与cpg_db_query
相同的操作。
相关文件:
答案 0 :(得分:2)
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_*
有multi_query,这是我所知道的使用单个调用运行多个SQL查询的唯一方法。
答案 1 :(得分:0)
我不确定mysqli或cpg_db,但我知道mysql在一次提交中不支持多个查询。所以要说5个查询你必须做5个mysql_query。
我会检查以确保cpg_db一次支持多个查询。