【发布时间】:2013-07-18 13:02:00
【问题描述】:
我们动态生成一个包含一个大的 插入 查询的 sql 文件。该文件将使用以下命令从 PHP 应用程序定期运行:
mysql --force -u foo -pbar demo < demo-file.sql
该命令没有输出,除非发生错误,因为文件的内容只有一个 insert 命令。现在我们决定将文件更改为包含多个 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);
【问题讨论】:
-
除了插入文件之外什么都没有?
-
能否将输出定向到 >> /dev/null
-
插入是否有效?可能是表示错误。
-
是的,基本上在重复更新时插入。
-
是的,它们可以工作,因为输出为 0。这是一个客户端服务器应用程序,我尽量避免更改客户端,因为它们是具有一个服务器的多个客户端,简化说。