Rumah php教程 php手册 thinkphp备份数据库的方法分享

thinkphp备份数据库的方法分享

Jun 06, 2016 pm 08:15 PM
thinkphp Sandarkan pangkalan data

这篇文章主要介绍了thinkphp备份数据库的方法分享,非常的简单实用,推荐给有需要的小伙伴们

貌似THINKPHP没有备份数据库的方法,所以我自己写了一个,数据库连接和事务处理用的是pdo,如果有需要的可以联系我,写个mysql或者mysqli的

复制代码 代码如下:


class SqlAction extends Action{
function outsql(){
header(“Content-Type:text/html;charset=utf-8″);
/*用C方法读取数据库配置*/
$host=C(‘DB_HOST');
$db_name=C(‘DB_NAME');
$user=C(‘DB_USER');
$password=C(‘DB_PWD');
/*调用导出数据库的私有方法*/
$outstream=$this->outputSql($host, $dbname, $user, $password);
/*下载导出数据库*/
header(“Content-Disposition: attachment; filename=$dbname.sql”);
echo $outstream;
}
/*
* 数据库导出函数outputSql
* 用PDO方式导出数据库数据
* $host 主机名 如localhost
* $dbname 数据库名
* $user 用户名
* $password 密码
* $flag 标志位0或1 0为仅导出数据库结构 1为导出数据库结构和数据 默认为1
*/
private function outputSql($host, $dbname, $user, $password, $flag=1) {
try {
$pdo = new PDO(“mysql:host=$host;dbname=$dbname”, $user, $password); //连接数据库
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //设置调优参数,遇到错误抛出异常
} catch (PDOException $e) {
echo $e->getMessage(); //如果连接异常则抛出错误信息
exit;
}
$mysql = “DROP DATABASE IF EXISTS `$dbname`;\n”; //$mysql装载sql语句,这里如果存在数据库则drop该数据库
$creat_db=$pdo->query(“show create database $dbname”)->fetch();//用show create database查看sql语句
preg_match(‘/DEFAULT CHARACTER SET(.*)\*/', $creat_db[‘Create Database'],$matches);//正则取出DEFAULT CHARACTER SET 后面的字符集
$mysql.=”CREATE DATABASE `$dbname` DEFAULT CHARACTER SET $matches[1]”;//该语句如CREATE DATABASE `test_db` DEFAULT CHARACTER SET utf8
/*查找该数据库的字符整序如COLLATE utf8_general_ci*/
$db_collate=$pdo->query(“SELECT DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME ='$dbname' LIMIT 1″)->fetch();
$mysql.=”COLLATE “.$db_collate[‘DEFAULT_COLLATION_NAME'].”;\nUSE `$dbname`;\n\n”;
$statments = $pdo->query(“show tables”); //返回结果集,show tables检视所有表名
foreach ($statments as $value) {//遍历此结果集,,导出每个表名对应的信息
$table_name = $value[0]; //获取该表名
$mysql.=”DROP TABLE IF EXISTS `$table_name`;\n”; //每个表前都准备Drop语句
$table_query = $pdo->query(“show create table `$table_name`”); //取出该表建表信息的结果集
$create_sql = $table_query->fetch(); //利用fetch方法取出该结果集对应的数组
$mysql.=$create_sql[‘Create Table'] . “;\r\n\r\n”; //写入建表信息
if ($flag != 0) {//如果标志位不是0则继续取出该表内容生成insert语句
$iteams_query = $pdo->query(“select * from `$table_name`”); //取出该表所有字段结果集
$values = “”; //准备空字符串装载insert value值
$items = “”; //准备空字符串装载该表字段名
while ($item_query = $iteams_query->fetch(PDO::FETCH_ASSOC)) { //用关联查询方式返回表中字段名和值的数组
$item_names = array_keys($item_query); //取出该数组键值 即字段名
$item_names = array_map(“addslashes”, $item_names); //将特殊字符转译加\
$items = join(‘`,`', $item_names); //联合字段名 如:items1`,`item2 `符号为反引号 键盘1旁边 字段名用反引号括起
$item_values = array_values($item_query); //取出该数组值 即字段对应的值
$item_values = array_map(“addslashes”, $item_values); //将特殊字符转译加\
$value_string = join(“‘,'”, $item_values); //联合值 如:value1′,'value2 值用单引号括起
$value_string = “(‘” . $value_string . “‘),”; //值两边加括号
$values.=”\n” . $value_string; //最后返回给$value
}
if ($values != “”) {//如果$values不为空,即该表有内容
//写入insert语句
$insert_sql = “INSERT INTO `$table_name` (`$items`) VALUES” . rtrim($values, “,”) . “;\n\r”;
//将该语句写入$mysql
$mysql.=$insert_sql;
}
}

}
return $mysql;
}
}
?>

是不是很实用的功能呢,小伙伴们可以直接移植到自己的项目中去的。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menjalankan projek thinkphp Bagaimana untuk menjalankan projek thinkphp Apr 09, 2024 pm 05:33 PM

Untuk menjalankan projek ThinkPHP, anda perlu: memasang Komposer untuk mencipta projek, masukkan direktori projek dan laksanakan php bin/console serve;

Terdapat beberapa versi thinkphp Terdapat beberapa versi thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP mempunyai berbilang versi yang direka untuk versi PHP yang berbeza. Versi utama termasuk 3.2, 5.0, 5.1 dan 6.0, manakala versi kecil digunakan untuk membetulkan pepijat dan menyediakan ciri baharu. Versi stabil terkini ialah ThinkPHP 6.0.16. Apabila memilih versi, pertimbangkan versi PHP, keperluan ciri dan sokongan komuniti. Adalah disyorkan untuk menggunakan versi stabil terkini untuk prestasi dan sokongan terbaik.

Bagaimana untuk menjalankan thinkphp Bagaimana untuk menjalankan thinkphp Apr 09, 2024 pm 05:39 PM

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Mana yang lebih baik, laravel atau thinkphp? Mana yang lebih baik, laravel atau thinkphp? Apr 09, 2024 pm 03:18 PM

Perbandingan prestasi rangka kerja Laravel dan ThinkPHP: ThinkPHP umumnya berprestasi lebih baik daripada Laravel, memfokuskan pada pengoptimuman dan caching. Laravel berfungsi dengan baik, tetapi untuk aplikasi yang kompleks, ThinkPHP mungkin lebih sesuai.

Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk melaksanakan tugas tak segerak Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk melaksanakan tugas tak segerak Nov 22, 2023 pm 12:01 PM

"Cadangan Pembangunan: Cara Menggunakan Rangka Kerja ThinkPHP untuk Melaksanakan Tugas Asynchronous" Dengan perkembangan pesat teknologi Internet, aplikasi Web mempunyai keperluan yang semakin tinggi untuk mengendalikan sejumlah besar permintaan serentak dan logik perniagaan yang kompleks. Untuk meningkatkan prestasi sistem dan pengalaman pengguna, pembangun sering mempertimbangkan untuk menggunakan tugas tak segerak untuk melaksanakan beberapa operasi yang memakan masa, seperti menghantar e-mel, memproses muat naik fail, menjana laporan, dsb. Dalam bidang PHP, rangka kerja ThinkPHP, sebagai rangka kerja pembangunan yang popular, menyediakan beberapa cara mudah untuk melaksanakan tugas tak segerak.

Bagaimana untuk memasang thinkphp Bagaimana untuk memasang thinkphp Apr 09, 2024 pm 05:42 PM

Langkah pemasangan ThinkPHP: Sediakan persekitaran PHP, Komposer dan MySQL. Buat projek menggunakan Komposer. Pasang rangka kerja dan kebergantungan ThinkPHP. Konfigurasikan sambungan pangkalan data. Hasilkan kod aplikasi. Lancarkan aplikasi dan lawati http://localhost:8000.

Bagaimanakah prestasi thinkphp? Bagaimanakah prestasi thinkphp? Apr 09, 2024 pm 05:24 PM

ThinkPHP ialah rangka kerja PHP berprestasi tinggi dengan kelebihan seperti mekanisme caching, pengoptimuman kod, pemprosesan selari dan pengoptimuman pangkalan data. Ujian prestasi rasmi menunjukkan bahawa ia boleh mengendalikan lebih daripada 10,000 permintaan sesaat, dan digunakan secara meluas dalam tapak web dan sistem perusahaan berskala besar seperti JD.com dan Ctrip dalam aplikasi praktikal.

Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk pembangunan API Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk pembangunan API Nov 22, 2023 pm 05:18 PM

Cadangan pembangunan: Cara menggunakan rangka kerja ThinkPHP untuk pembangunan API Dengan pembangunan berterusan Internet, kepentingan API (Antara Muka Pengaturcaraan Aplikasi) telah menjadi semakin menonjol. API ialah jambatan untuk komunikasi antara aplikasi yang berbeza Ia boleh merealisasikan perkongsian data, panggilan fungsi dan operasi lain, dan menyediakan pembangun kaedah pembangunan yang agak mudah dan pantas. Sebagai rangka kerja pembangunan PHP yang sangat baik, rangka kerja ThinkPHP adalah cekap, berskala dan mudah digunakan.

See all articles