首页> 实战笔录 >MySql MySql

php脚本批量修改mysql数据库表前缀

作者:小萝卜 2018-06-13 浏览 2241

简介PHP通过mysqli拓展实现批量修改数据库表前缀

PHP通过mysqli拓展实现批量修改数据库表前缀:

        //基础信息
        $postdata = array(
                           'prefix'=>'ueo30_',
                           'database'=>'wlb',
                           'hostname'=>'localhost',
                           'username'=>'root',
                           'password'=>'',
                           'port'=>3306   
                         );
        
             
        $old_pre = 'ueo49_';    // 原表前缀
        $new_pre = $postdata['prefix'];    // 新表前缀
        $db_name = $postdata['database']; //库名
        $length = strlen($old_pre);    // 原表前缀长度

        //注意php.ini开启对应扩展
        $mysqli = @ new \mysqli($postdata['hostname'], $postdata['username'], $postdata['password'], '', $postdata['port']);

        if($mysqli->connect_error){

            $this->error("连接数据库失败:".$mysqli->connect_error);

        }

        /**
         * 选择数据库;db4
         */
        $mysqli->select_db($db_name);

        // 查询当前数据库中所有的表
        $result = $mysqli->query("SHOW TABLES");

        // 遍历所有的表
        while($row = mysqli_fetch_array($result))
        {
            $old_tablename = $row[0];
 
            // 判断表名是否包含要修改前缀
            if($old_pre && $old_pre == substr($old_tablename, 0, $length))
            {

                $new_tablename = $new_pre.substr($old_tablename, $length);
                //echo " ALTER TABLE `{$old_tablename}` RENAME TO `{$new_tablename}`; \n\r";
                $query = $mysqli->query("ALTER TABLE `{$old_tablename}` RENAME TO `{$new_tablename}`");
                
            }
             
        }

        $mysqli->close();

        echo "数据库表前缀配置完成!"; 

/** 
*由于mysql_list_tables方法已经过时,运行以上程序时会给出方法过时的提示信息 * 
*Deprecated: Function mysql_list_tables() is deprecated in … on line xxx  * 
*在php.ini中设置error_reporting,不显示方法过时提示信息  * 
*error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED  *
*/ 

很赞哦! (0)

文章评论

    高端网站建设