在mysql中没有多个查询的输出

时间:2013-07-18 13:02:00

标签: php mysql

我们动态生成一个包含一个大插入查询的sql文件。该文件将使用以下命令从PHP应用程序定期运行:

mysql --force  -u foo -pbar demo < demo-file.sql

除非发生错误,否则命令没有输出,因为文件内容只有一个 insert 命令。现在我们决定更改它将包含多个插入查询而不是一个大查询的文件。从那时起,命令的输出是

0
0
0

我们的PHP应用程序失败,因为它现在假定发生错误,因为输出不为空。所以我的问题是,我可以写一个sql文件,没有多个查询生成的输出?我尽量不要触摸PHP应用程序。

我知道有更好的设计,但代码是历史性的: - )

[更新1]

基本上应用

$response = shell_exec('mysql --force  -u foo -pbar demo < demo-file.sql');
if (empty($response)) {
  echo 'OK';
} else {
  echo 'error: '.$response;
}

[更新2] sql文件包含类似

的内容
insert into;
select sleep(0);
insert into;
select sleep(0);
insert into;
select sleep(0);

1 个答案:

答案 0 :(得分:0)

这些零来自睡眠线。摆脱它们,你不需要它们。

另外,出于性能考虑,如果您使用的是支持事务的模式,则应添加:

START TRANSACTION
INSERT...
INSERT...
INSERT...
...
COMMIT