pdo实现数据库导入

//接受文件,数据库名称

$name=$_FILES['database_sql']['name'];

$db_name=substr($_FILES['database_sql']['name'],0,strpos($_FILES['database_sql']['name'],'.'));

//将文件存在某个地方

move_uploaded_file($_FILES['database_sql']['tmp_name'],ROOT_PATH.'public/database/daoru/'.$name);

$host="localhost";//主机名

$user="root";//MYSQL用户名

$password="root";//密码

$dbname=Request::instance()->post('database_name');//在此指定您要恢复的数据库名,不存在则必须先创建,请自已修改数据库名

$mysql_file=ROOT_PATH.'public/database/daoru/'.$db_name.'.sql';//指定要恢复的MySQL备份文件路径,请自已修改此路径

restore($mysql_file,$host,$dbname,$user,$password);//执行MySQL恢复命令


functionrestore($fname,$host,$dbname,$user,$password)

{

$pdo=new\PDO("mysql:host=$host;dbname=$dbname",$user,$password);

if(file_exists($fname)) {

$sql_value="";

$cg=0;

$sb=0;

$sqls=file($fname);

foreach($sqlsas$sql)

{

$sql_value.=$sql;

}

$a=explode(";\r\n",$sql_value);//根据";\r\n"条件对数据库中分条执行

$total=count($a);

$pdo->query("set names 'utf8'");

for($i=0;$i<$total;$i++)

{

$pdo->query("set names 'utf8'");

//执行命令

if($pdo->query($a[$i]))

{

$cg+=1;

}

else

{

$sb+=1;

$sb_command[$sb]=$a[$i];

}

}

echo"操作完毕,共处理$total条命令,成功$cg条,失败$sb条";

//显示错误信息

if($sb>0)

{

echo"




失败命令如下:


";

for($ii=1;$ii<=$sb;$ii++)

{

echo"

第 ".$ii." 条命令(内容如下):
".$sb_command[$ii]."


";

}

}//-----------------------------------------------------------

}else{

echo"MySQL备份文件不存在,请检查文件路径是否正确!";

}

}

你可能感兴趣的:(pdo实现数据库导入)