У меня очень простой скрипт с PHP exec
, вызывающий команду mysql
:
$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);
Я ожидаю, что вышеприведенный скрипт вызывает команду mysql
, передает информацию об аутентификации пользователя и запускает job_create.sql
на лету.
Единственное, что он не работает, в том смысле, что job_create.sq
l не работает должным образом. , Я попытался вызвать команду mysql
напрямую из командной строки, используя приведенный ниже скрипт,
bin\mysql.exe -h localhost --user=root --password=mypass < "job_create.sql"
и это работает.
Есть идеи, как это исправить?
Редактировать: я вызываю этот скрипт из командной строки PHP. т.е. PHP.exe installdb.php