2017-10-06 126 views
-2

我已经买了数字海洋上的Droplet,我已经安装LEMP与Ubuntu 16.04和PHPmyadmin ..我已经上传在www/db目录上的.sql转储,我试图恢复由PHP转储.. 这是代码:PHP恢复MySQL转储

<?php 

// Name of the file 
$filename = 'db/commgest.sql'; 
// MySQL host 
$mysql_host = 'localhost'; 
// MySQL username 
$mysql_username = 'xxx'; 
// MySQL password 
$mysql_password = 'xxx'; 
// Database name 
$mysql_database = 'fluppi'; 

$restore = "mysql --user={$mysql_username} --password={$mysql_password} --database={$mysql_database} < $filename"; 

if(exec($restore)){ 
    echo "ok"; 
}else{ 
    echo "error"; 
} 

?> 
+1

你没有问过问题。什么是问题? –

+0

只有很少的建议: 1.使用完整路径ti你的文件名 2.使用'escapeshellarg'函数作为转义密码,因为密码可能包含特殊字符。 '$ mysql_password = escapeshellarg('xxx');' –

回答

0

为什么不mysql命令行?

mysql -u username -p -h localhost fluppi < www/db/file.sql 
+0

因为我需要这样做PHP .. – LuigiMdg

+0

“需要”主要是主观的。你有什么要求? – tadman

0

通过您对@Being Sunny的回答发表评论,我猜测您使用的是共享主机。

登录PHPMyAdmin并在那里上传.sql文件。或复制MySQL代码的.sql文件,并使用phpMyAdmin执行它(或者,不建议,PHP)

另一种选择是读.sql文件,并使用在每;执行语句PHP

+0

我有必要aumatizate与PHP创建新的数据库和结构..! 我需要为我的客户创建一个适用于我的软件的演示。我需要这个在PHP中! – LuigiMdg

+0

@LuigiMdg您在关于创建新数据库的初始问题中没有提及任何内容。你最初的问题与你刚才所说的你需要做的不一样......或者发布了你所得到的错误。 – Ice76

+0

Ho un codice per la creazione del database。 Prendi a il il codice PHP per ripristinare il dump ..Perchèmi prendi un problema? Tu mi dici che non usi PHP o l'obiettivo dei miei codici。 PERCHE? 我的问题是:如何通过PHP来恢复SQL转储? 。 – LuigiMdg