美文网首页Web 开发
pdo实现数据库导入

pdo实现数据库导入

作者: bchz | 来源:发表于2017-04-22 10:24 被阅读10次

    <?php

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

    $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实现数据库导入

        本文链接:https://www.haomeiwen.com/subject/lmfszttx.html