我创建了一个backup.sql
脚本来恢复MySql数据库。我已经使用PHPMyAdmin导入检查了脚本,一切正常(数据库已成功恢复)。现在我想通过PHP运行它。我找到了this question,我有:
1)在htdocs文件夹中创建了一个PHP文件,其中包含以下内容
$site_path= realpath(dirname(__FILE__)).'/';
$command = 'mysql'
. ' --host=' . 'localhost'
. ' --user=' . 'myuser'
. ' --password=' . 'mypass'
. ' --database=' . 'dbname'
. ' --execute="SOURCE ' . $site_path;
$output = shell_exec($command . 'backup.sql"');
echo "<pre>".$output."</pre>";
2)将backup.sql脚本放入htdocs文件夹
但是当我运行脚本时,数据库上没有任何反应,并且没有显示有关shell_exec结果的任何内容。我在Windows机器上运行Apache下的PHP和MySql。命令变量具有以下值:
mysql --host=localhost --user=myuser --password=mypass--database=dbname --execute="SOURCE C:\Programmi\Apache Software Foundation\Apache2.2\htdocs/
我错过了什么?
答案 0 :(得分:5)
$mysql_host = "localhost";
$mysql_database = "db";
$mysql_user = "user";
$mysql_password = "password";
# MySQL with PDO_MYSQL
$db = new PDO("mysql:host=$mysql_host;dbname=$mysql_database", $mysql_user, $mysql_password);
$query = file_get_contents("shop.sql");
$stmt = $db->prepare($query);
if ($stmt->execute())
echo "Success";
else
echo "Fail";
如果您的sql文件中的整个代码100%正确且无需更改,请尝试此操作,使用PDO以提高代码的安全性。
答案 1 :(得分:0)