ThinkPHP备份数据库共享方法

ThinkPHP备份数据库共享方法
看来,ThinkPHP不备份数据库。所以我自己写的。数据库连接和事务处理PDO。如果有必要,你可以联系我写一个MySQL或mysqli。

复制代码代码如下所示:

< PHP

类SqlAction延伸动作{

功能outsql(){

标题(内容类型文本/ HTML;字符集= UTF-8);

使用C方法读取数据库配置

为主机= C('db_host);

db_name美元= C('db_name);

用户名= C('db_user);

$密码= C('db_pwd);

私有方法调用导出数据库

美元美元流出的输出= -> outputsql(为主机,在美元美元美元,用户,密码);

导出数据库下载

标题(内容配置:依恋;文件名= $ dbname。SQL);

echo outstream;

}

*

*数据库导出功能outputsql

*在PDO数据库数据导出

*为主机的主机名,如localhost

* $ dbname数据库名称

*用户用户名

*密码密码

* $标志位0或10仅导出数据库结构1以导出数据库结构,数据默认为1。

* /

私有函数outputsql(为主机,在美元美元美元,用户,密码,$旗= 1){

{试

为PDO =新PDO(MySQL:主机=为主机;北京dbname美元美元美元,用户,密码); / /数据库连接

为PDO -> setAttribute(PDO::::attr_errmode,PDO errmode_exception); / /设置调整参数错误异常

赶上(PDOException,e){ }

回声(a -> GetMessage); / /如果抛出的错误信息是连接异常

出口;

}

MySQL数据库是否存在美元=降` dbname美元`;加载SQL语句,如果有数据库,则删除这个数据库。

creat_db美元=美元PDO ->查询(显示创建数据库dbname美元(->提取)); / /显示视图的SQL语句创建数据库

preg_match( /默认字符集(。*) * ,creat_db美元{创建数据库},$matches); / /默认字符集的字符集背后的规则

MySQL数据库创建`美元,在美元`默认字符集$匹配{ 1 }; / /数据库` test_db `违约声明如创建utf8字符集

找到 / *数据库字符序列作为整理utf8_general_ci * /

db_collate美元=美元PDO ->查询(选择从哪里default_collation_name information_schema.schemata schema_name =1dbname'limit美元)->取();

为MySQL。=整理。$ db_collate { 'default_collation_name'};。使用` dbname美元`;;

将美元美元= PDO ->查询(展示表格); / /返回结果集的节目表,检查所有的表名

foreach(将美元美元价值)的{ / /遍历集合,每个表对应的输出信息的名称

table_name美元=价值{ 0 }; / /得到表名

为MySQL。=如果表滴存在` table_name美元`;;每个表的下拉语句

table_query美元=美元PDO ->查询(显示创建表` table_name美元`); / /删除结果表信息集

create_sql美元=($ table_query ->提取); / /阵列采用取方法来删除相应的结果集

MySQL create_sql美元美元。= {'创建表}。; R;写入表信息

如果($)!= 0)如果标志不为0,则删除表以生成INSERT语句。

iteams_query美元=美元PDO ->查询(SELECT * FROM ` table_name美元`); / /删除表中的所有字段的结果集

= $值;对空字符串加载加载值

= $项目;准备加载空字符串表字段名

而($ item_query =美元iteams_query ->取(PDO::fetch_assoc)){ / /查询表的字段名称和数组的值相关联

item_names = array_keys美元(美元item_query); / /删除数组的键字段名

item_names美元= array_map(addslashes,item_names美元); / /特殊字符翻译

$项目=加入(`,`,item_names美元); / /联合字段名称,如:1 `,` 2、符号反引号键盘1字段名称旁边的反转行情

item_values = array_values美元(美元item_query); / /删除数组的值字段的值

item_values美元= array_map(addslashes,item_values美元); / /特殊字符翻译加

value_string美元=加入(item_values美元'); / /组合值如value1,在单引号'value2值

($ value_string =$ value_string..); / /价值,在支架两侧

$值。。value_string美元; / /返回上一美元的价值

}

如果($)!=如果$值不是空的,即表内容

写入INSERT语句

insert_sql美元=插入` table_name美元`(` $项目`)值。RTrim(美元值);r;

语句被写入到$ mysql /

MySQL insert_sql美元美元。=;

}

}

}

返回mysql;

}

}

>
合作伙伴可以直接移植到自己的项目上,这是一个非常实用的功能吗。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部