ich mit PHP exec
, ruft mysql
Befehl ein extrem einfaches Skript funktioniert:Aufruf MySQL exe PHP exec nicht
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'mypass';
$db = 'job';
$file ='job_create.sql';
$mySQLDir='"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql"';
if ($dbpass != '') {
$cmd = $mySQLDir.' -h '.$dbhost.' --user='.$dbuser.' --password='.$dbpass.' < "'.dirname(__FILE__).'\\'.$file.'"';
} else {
$cmd = $mySQLDir.' -h '.$dbhost.' --user='.$dbuser.' < "'.dirname(__FILE__).'\\'.$file.'"';
}
// echo $cmd;
exec($cmd,$out,$retval);
ich erwarten würde, dass das obige Skript mysql
Befehl aufruft, in der Benutzer-Authentifizierung übergeben Informationen und führen Sie die job_create.sql
im laufenden Betrieb.
Die einzige Sache ist, dass es nicht funktioniert, in dem Sinne, dass die job_create.sq
l nicht ordnungsgemäß ausgeführt wird. . Ich habe versucht, mysql
Befehl direkt von der Kommandozeile mit dem folgenden Skript aufrufen,
bin\mysql.exe -h localhost --user=root --password=mypass < "job_create.sql"
und es funktioniert.
Irgendeine Idee, wie man das repariert?
Edit: Ich rufe dieses Skript von PHP Befehlszeile. d. h., PHP.exe installdb.php
Warum nicht Sie die mysql-Bindungen statt Aufruf über die Shell verwenden hinzufügen? – troelskn