I have an extremely simple script with PHP exec
, calling mysql
command:
$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);
I would expect that the above script calls mysql
command, pass in the user authentication information and run the job_create.sql
on the fly.
The only thing is that it doesn't work, in the sense that the job_create.sq
l is not run properly. . I tried to call mysql
command directly from command line using the below script,
bin\mysql.exe -h localhost --user=root --password=mypass < "job_create.sql"
and it works.
Any idea how to fix this?
Edit: I call this script from PHP command line. i.e., PHP.exe installdb.php