Gio*_*gio 2 php mysql shell scripting
我创建了一个backup.sql
脚本来还原MySql数据库。我已经使用PHPMyAdmin导入检查了脚本,并且一切正常(数据库已成功还原)。现在,我想通过PHP运行它。我找到了这个问题,我有:
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>";
Run Code Online (Sandbox Code Playgroud)
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/
Run Code Online (Sandbox Code Playgroud)
我想念什么?
$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";
Run Code Online (Sandbox Code Playgroud)
如果您的sql文件中的整个代码100%正确且没有任何更改,请尝试执行此操作,并使用PDO来提高代码的安全性。