У меня есть следующий 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"
Это прекрасно работает, когда я запускаю его вручную из командной строки.
Мне нужно запустить команду sqlcmd из php, и я попробовал несколько команд выполнения в php, но ни одна не работает. Единственный вариант — использовать .bat файлы и вызывать их через php, но когда я это делаю, команда sqlcmd выполняется непрерывно (несколько сотен раз) и завершается. Я пробовал использовать / wait и exit, но это усугубляет ситуацию, открывая сотни и сотни окон командной строки и замораживая систему. Ниже приведен код, который я попробовал. Пожалуйста, дайте мне знать, что я делаю неправильно. Благодарю.
@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
Я нашел, в чем проблема. Я назвал файл .bat как sqlcmd.bat, и это привело к бесконечной работе программы. Я переименовал файл .bat, и он работает отлично. Глупая ошибка Виноват.
Других решений пока нет …