php数据库还原代码 php数据库还原代码是什么

PHP实现数据库还原时遇到问题

$file_name = $_FILES['sqlFile']['name'];

成都创新互联成立于2013年,我们提供高端重庆网站建设成都网站制作成都网站设计、网站定制、成都全网营销小程序设计、微信公众号开发、seo优化服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为木制凉亭企业提供源源不断的流量和订单咨询。

改成

$file_name = $_FILES['sqlFile']['tmp_name'];

php 代码备份数据库

?php

/*

**************function db_bak()********************

*  功能:备份指定的数据库中的指定表

*  输入(按传入参数解释):$db_name 要备份的数据库,$tb_array要备份的表,数组形式的,如果不是数组,将备份整个库。

$dir输出备份文件的目录,$filename备份文件名,$block_num指定分块大小(指一条insert语句包含几天数据)

*  输出:备份的数据表的sql语句文件,可用于还原

*/

function db_bak($mylink,$dbname,$tab_array="",$dir,$filename,$block_num=20){

mysql_select_db($dbname,$mylink) or db_error(mysql_error());

is_array($tab_array) or $tab_array=db_showtb($mylink,$dbname,true); //如果$tab_array不是数组,则取得整个库的表

if($dir){

if(!file_exists($dir)){

$flag=mkdir($dir);

if(!$flag)

return 2;

}

}

//检查数据表是否存在

foreach($tab_array as $tab)

db_e_tab($mylink,$dbname,$tab) or db_error($tab." is not exist!");

$fp=fopen($dir.$filename,"w");

foreach($tab_array as $tab){  

fputs($fp,"DROP TABLE IF EXISTS ".$tab.";\r\n");

$tabdef_array=mysql_fetch_array(mysql_query("SHOW CREATE TABLE ".$tab,$mylink));

fputs($fp,str_replace("\n","",$tabdef_array["Create Table"]).";\r\n"); 

fputs($fp,"LOCK TABLES ".$tab." WRITE;\r\n"); 

$getvalue_result=mysql_query("select * from ".$tab,$mylink);

if(mysql_num_rows($getvalue_result)){

$i=1;  

$p="";

$start_flag=true;

while($getvalue_array=mysql_fetch_row($getvalue_result)){

$values=join("','",array_map('db_data_check',$getvalue_array));

$start_flag  fputs($fp,"insert into ".$tab." values");

if($i$block_num){

fputs($fp,",('".$values."');\r\n");

$start_flag=true;

$i=0;

}else{

fputs($fp,$p."('".$values."')");

$start_flag=false;

$i++;

}

$p=$start_flag?"":","; 

}

$start_flag or fputs($fp,";\r\n");

}

fputs($fp,"UNLOCK TABLES;\r\n");  

}

fclose($fp);  

}

/*

**************function db_in()********************

*  功能:还原备份函数db_bak生成的数据库文件

*  输入(按传入参数解释):$db_name 要备份的数据库,$filename要还原的数据库文件

*  输出:将数据还原到数据库

*  原理:将文件分割成一个数组,然后逐条将数据导入数据库

*  警告:执行该函数会删除原来的数据表

*/

function db_in($mylink,$dbname,$filename){

if(!file_exists($filename)){

return 0;

}

db_e_db($mylink,$dbname) or (mysql_query("create database ".$dbname,$mylink)or db_error(mysql_error()));

mysql_select_db($dbname,$mylink);

$sql_array=file($filename);

foreach($sql_array as $sql){

mysql_query(trim($sql),$mylink) or db_error(mysql_error());

}

}

//我自己写的。可以参考哈

php备份恢复MYSQL数据库

1、把数据库sql文件查找 CHARACTER

替换成 CHARACTER SET utf8 或 CHARACTER = utf8

2、到phpmyadmin 创建一个新的数据库的时候应该选 整理 latin1_swedish_ci

3、到phpmyadmin 进入新建的数据库,导入数据库文件

4、用UltraEdit转换所有ANSI格式的php源码文件为UTF-8格式:File -- Conversions -- ASCII to UTF-8

5、在php源码文件中必须加入:

在head后加入

meta http-equiv="Content-Type" content="text/html; charset=UTF-8"

6、在连接数据DB的文件中找到类似一下代码

$host="localhost"; $DBname="aa"; //数据库名字$user= "root"; //用户名$passwd = ""; //密码$link = mysql_connect($host,$user,$passwd) or die ("Fail");

$db = mysql_select_db($DBname, $link) or die ("Fail"); //连接

// 要在真正query DB取出资料前,必须加入下面3行mysql_query才可以:

mysql_query("SET NAMES 'utf8'");

mysql_query("SET CHARACTER_SET_CLIENT=utf8");

mysql_query("SET CHARACTER_SET_RESULTS=utf8");

7、在php源码中, 如有应用htmlentities和htmlspecialchars时需要注意:

要似如下格式:

$chars = htmlentities($chars,ENT_QUOTES,"UTF-8");

$chars = htmlspecialchars($chars,ENT_QUOTES,"UTF-8");

如有应用addslashes()或mysql_real_escape_string()记得用以下:

$chars = stripslashes($chars);

另外如果需要的话还可设置:

1、php.ini 设定php中的语系为 (记得restart)

default_charset = "utf-8"

2、my.ini 设定MySQL中的语系为 (记得restart)

[mysqld]

init_connect='SET NAMES utf8'

default-character-set=utf8

[client]

default-character-set = utf8

本人刚接触PHP+MySQL,才疏学浅,希望能给有需要的得到帮助。

请大家指点,谢谢!


名称栏目:php数据库还原代码 php数据库还原代码是什么
URL标题:http://scyanting.com/article/hiodej.html