2016-07-01 13 views
0

Ich habe die folgenden SQLCMD, die eine entfernte Datenbank verbindet führt eine Abfrage und speichert es als CSV-Datei.Running SQLCMD aus Fledermaus Datei Schleifen unendlich

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" 

Dies funktioniert gut, wenn ich es manuell von der Eingabeaufforderung ausführen.

Ich muss den sqlcmd Befehl von PHP ausführen und ich habe mehrere Ausführungsbefehle in PHP versucht, aber keiner funktioniert. Die einzige Option ist die Verwendung von .bat-Dateien und deren Aufruf über PHP, aber wenn ich dies tue, läuft der Befehl sqlcmd kontinuierlich (mehrere hundert Mal) und wird beendet. Ich habe versucht, mit/warten und beenden, aber das macht es schlimmer, indem Sie Hunderte von Eingabeaufforderungsfenstern öffnen und es das System einfriert. Unten ist der Code, den ich ausprobiert habe. Bitte lass mich wissen, was ich falsch mache. Vielen Dank.

@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

Haben Sie versucht, die Batch-Datei über die Eingabeaufforderung cmd auszuführen? Nur um sicher zu sein, dass PhP-Code nicht in looping ist? Ich sehe nicht, wie die Batch-Datei, die Sie auflisten, eine Schleife verursachen könnte. –

+0

Write 'start" "/ wait ...' ('start' kann die erste in Anführungszeichen gesetzte Zeichenkette als Fenstertitel interpretieren, so dass eine leere Zeichenkette' '' 'explizit definiert wird und Probleme mit zerbrochenen Befehlszeilen vermieden werden) ... – aschipfl

+0

Ich führe die .bat-Datei nicht von PHP aus. Ich renne gerade durch Doppelklick @Joe C –

Antwort

1

Ich fand, was das Problem war. Ich nannte die .bat-Datei als sqlcmd.bat, und das führte dazu, dass das Programm unendlich lief. Ich habe die .bat-Datei umbenannt und es funktioniert einwandfrei. Ein dummer Fehler. Mein Fehler.

+0

Ich tat genau das gleiche ... LOL. Danke fürs Schreiben! –