2016-07-01 5 views
0

원격 데이터베이스에 연결하는 다음 SQLCMD에 쿼리를 실행하고이를 CSV 파일로 저장합니다.박쥐 파일 루프에서 SQLCMD 실행 무한히

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와 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 
+0

cmd 프롬프트에서 배치 파일을 실행 해 보셨습니까? PhP 코드가 루핑되지 않았는지 확인하기 위해? 내가 나열한 배치 파일이 루프를 일으킬 수있는 방법을 모르겠다. –

+0

'start "를 쓰십시오/wait ...'('start'는 첫 번째로 인용 된 문자열을 창 제목으로 해석 할 수 있습니다. 따라서 빈 문자열''"을 명시하면 명시 적으로 하나를 정의하고 명령 줄이 깨지는 문제를 피할 수 있습니다) ... – aschipfl

+0

PHP에서 .bat 파일을 실행하지 않습니다. 난 그냥 두 번 클릭하여 실행 오전 @ 조 C –

답변

1

문제점이 무엇인지 발견했습니다. .bat 파일의 이름을 sqlcmd.bat로 지정했기 때문에 프로그램이 무한히 실행되었습니다. .bat 파일의 이름이 바뀌었고 완벽하게 작동합니다. 어리석은 실수. 내 잘못이야.

+0

나는 똑같은 짓을 ... LOL. 게시 해 주셔서 감사합니다! –