【发布时间】:2016-07-01 21:38:58
【问题描述】:
我有以下连接到远程数据库的 SQLCMD 执行查询并将其保存为 csv 文件。
sqlcmd -S tcp:0.0.0.0,1433 -U user -P pass -d mydb -W -w 999 -s "," -Q "SELECT * FROM dbo.CSVData" -o "C:\wamp\sqlcmd.csv"
当我从命令提示符手动运行它时,它工作正常。
我需要从 php 运行 sqlcmd 命令,我已经在 php 中尝试了几个执行命令,但没有一个有效。唯一的选择是使用 .bat 文件并通过 php 调用它们,但是当我这样做时,sqlcmd 命令会连续运行(数百次)并退出。我曾尝试使用 /wait 并退出,但这会因为打开数百个命令提示符窗口而变得更糟,它会冻结系统。下面是我试过的代码。请让我知道我做错了什么。谢谢。
@echo off
echo Running sqlcmd
start /wait sqlcmd -S tcp:0.0.0.0,1433 -U user -P pass -d mydb -W -w 999 -s "," -Q "SELECT * FROM dbo.CSVData" -o "C:\wamp\sqlcmd.csv"
:exit
【问题讨论】:
-
您是否尝试过从 cmd 提示符运行批处理文件?只是为了确保 PhP 代码没有循环?我看不出您列出的批处理文件如何导致循环。
-
写入
start "" /wait ...(start可能会将它遇到的第一个带引号的字符串解释为窗口标题,因此给一个空字符串""明确定义一个并避免分解命令行的问题)。 .. -
我没有从 PHP 运行 .bat 文件。我只是通过双击它来运行@Joe C
标签: php batch-file sqlcmd