SQL语法错误,执行多个查询时?

时间:2013-10-12 03:38:10

标签: php mysql database

我正在使用现成的脚本来使用PHP备份我的MySQL数据库。我将结果查询存储在变量中。

如果我回显变量,并将输出复制粘贴到MySQL控制台,它就能完美运行。

但是当我使用'mysql_query'(我知道它被折旧,请忽略它)运行相同时,我得到了可怕的语法错误。

这是回声输出(前2行):

  

INSERT INTO assign   VALUES( '75085', 'RSAM', 'CE0001 / CZ0001 / CPE183 / CSC183', '1', '1', '3.0', '13', '1', '1', '13','2 ”,'10 0.00' , '117.00', '0', '0'); INSERT   INTO assign   VALUES( '75086', 'RSAM', 'CE0001 / CZ0001 / CPE183 / CSC183', '1', '2', '3.0', '13', '1', '1', '13','2 ”,'10 0.00' , '97.50', '0', '0');

这是确切的错误:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   'INSERT INTO assign附近   VALUES('75085','rsam','CE0001 / CZ0001 / CPE183 / CSC183','1','1''在第1行

如果有人能指出我明显缺少的东西,我将不胜感激!

2 个答案:

答案 0 :(得分:3)

正如mysql_query()的文档所说:

  

mysql_query()向与指定link_identifier关联的服务器上的当前活动数据库发送唯一查询(不支持多个查询)。

您可能对mysql_multi_query()感兴趣:

  

执行由分号连接的一个或多个查询。

答案 1 :(得分:2)

虽然mysql_query仅限于一个语句,但可以避免这种情况,因为只有一个语句可以将多个记录插入到同一个表中:

INSERT INTO assign (...)
VALUES(...),
VALUES(...);

这将节省往返延迟(超过多个mysql_query),这可能很重要。

请参阅Inserting multiple rows in mysql