0

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

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

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

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);
4

1 回答 1

0

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

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

START TRANSACTION
INSERT...
INSERT...
INSERT...
...
COMMIT
于 2013-07-18T13:06:32.267 回答