【发布时间】:2009-05-02 10:10:53
【问题描述】:
我有一个非常简单的 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.sql 没有正常运行。 .我尝试使用以下脚本直接从命令行调用mysql 命令,
bin\mysql.exe -h localhost --user=root --password=mypass < "job_create.sql"
它有效。
知道如何解决这个问题吗?
编辑:我从 PHP 命令行调用这个脚本。即 PHP.exe installdb.php
【问题讨论】:
-
为什么不使用 mysql-bindings 而不是通过 shell 调用?