2016-07-01 28 views
0

私は、リモートデータベースに接続してクエリを実行し、それをcsvファイルとして保存する次のSQLCMDを持っています。batファイルループから無限に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。投稿ありがとう! –

関連する問題