我们动态生成一个包含一个大插入查询的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);
答案 0 :(得分:0)
这些零来自睡眠线。摆脱它们,你不需要它们。
另外,出于性能考虑,如果您使用的是支持事务的模式,则应添加:
START TRANSACTION
INSERT...
INSERT...
INSERT...
...
COMMIT