php中实现mysql数据库备份与linux自动定时备份代码
把下面php代码保存成backdata.class.php文件
代码如下 | 复制代码 |
<?php public function __construct($mysql_link){ ?> |
我们再创建一个新的文件与backdata.class.php保存在同一目录
使用方法:
代码如下 | 复制代码 |
require_once("backdata.class.php"); $link = @mysql_connect("localhost","数据库名","密码") or die ('Could not connect to server.'); mysql_query("use cms",$link); mysql_query("set names utf8",$link); $dbbck=new backupData($link);//实例化它,只要一个链接标识就行了 //备份数据时,如想备份一个数据库中的所有表,你可这样写: $dbbck->backupTables("cms","./",array('*')); //备份数据时,如想备份一个数据库中的仅一个表时,你可这样写: $dbbck->backupTables("cms","./",array('user')); //备份数据时,如想备份一个数据库中的多个表时,你可这样写: $dbbck->backupTables("cms","./",array('user','acl','informatoin')); //注解:$dbbck->backupTables("参1","参2",array());中, |
参1为:数据库名,
参2为:要存放备份数据的位置(即目录地址)
第三个为:你要保存那些表
下面为linux中的自动定时备份的代码
参考了网上的很多教程,外加自己的测试,以下脚本经测试可用。
代码如下 | 复制代码 |
#!/bin/bash #配置参数 #判断备份文件存储目录是否存在,否则创建该目录 #开始备份之前,将备份信息头写入日记文件 #切换至备份目录 #备份失败后向网站管理者发送邮件提醒,需要mailutils或者类似终端下发送邮件工具的支持 |
使用:
将以上代码保存到: /usr/sbin/DataBackup (文件名随意,只要不跟系统原有的命令同名即可;代码可以放到任何地方,放在sbin目录下只是为了方便执行,sbin目录下的文件/目录可在终端直接调 用,类似于windows下PATH变量指定的目录)
为脚本添加可执行权限: sudo chmod +x /usr/sbin/DataBackup
执行脚本: sudo DataBackup
如果需要定时执行备份命令的,只需将下面这段代码放到crontab 文件(sudo vim /etc/crontab)中去就可以了:
01 3 * * * root /usr/sbin/DataBackup #它代表着将于每天3点执行DataBackup脚本
小注意一下下:
linux 下的shell脚本定义变量的格式为: key=value ,注意他们两者之间的” = “前后不能出现空格,否则系统无法确认该变量。
用红色标注的那行,第一个类似单引号的字符”`”其实不是单引号,它的输入键在键盘ESC键下方。
这个脚本只适合用于一些小站点的备份,因为它是对数据库进行全部备份而不是增量备份,不适合大容量的数据库备份。
相对于两种方法定时备份算是最好的方法了,这样可以节省时间让机器在最少人访问时自动备案,而php备份类需要人为操作,当然在windows下也可以利用计划任务来实现了。
这是一很基础的东西我们能过构造函数来实现创建类就自动与mysql服务器进行连接,我们只要设置好 $name,$pass,$table三个变量的值就好了。代码如下 | 复制代码 |
<?php $db = new ConnectionMySQL(); |
这里我要讲述一下关于构造函数
代码如下 | 复制代码 |
//构造函数 function __construct(){ $this->ut=$ut; $this->connect(); } |
这个页面使用了构造函数特别要主要在函数中不要调用数据库连接类了,否则在当前页面会有多连接连接如果访问过大服务器就会出mysql has gone的提法哦。
先下载
下载phpexcel文件,地址:phpexcel.codeplex.com/
在reader.php文件中找到以下类似代码(第一行既是),改成正确的oleread.php路径即可:require_once 'oleread.php';
然后新建一个php文件引入reader.php,
代码如下:
代码如下 | 复制代码 |
<?php |
代码示例
代码如下 | 复制代码 |
require_once 'phpexcel/Classes/PHPExcel.php'; //循环读取excel文件,读取一条,插入一条 $a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//获取A列的值 } |
代码实例cvs导入到数据库
把csv导入到数据库。
代码如下 | 复制代码 |
function getmicrotime(){ |
更多详细内容请查看:http://www.111cn.net/phper/php-database/excel-mysql.htm
文章利用了二个实例来分析介绍了关于php 日期和mysql日期的用法及格式还有包括了mysql使用日期时所用的字段类型及查询效率测试。php
int值:
time():是返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
我们想要获得1970 年 1 月 1 日到 2012-2-10的秒数可以通过strtotime()来实现:即:strtotime('2012-2-10');
date值:
string date ( string format [, int timestamp] )
关于date()函数可参考 http://www.111cn.net/phper/php-function/38146.htm
比如:直接date()返回的的实现当前的时间,当然我们可以指定的他的格式:
例如date('Y-m-d',strtotime('2012-2-10'));
时间操作:
代码如下 | 复制代码 |
date('Y-m-d h:i:s',strtotime('+1 week')); date('Y-m-d h:i:s',strtotime('+5 hours')); date('Y-m-d h:i:s',strtotime('next Monday)); date('Y-m-d h:i:s',strtotime('last Sunday')); date('Y-m-d h:i:s',strtotime('+ 1 day',12313223));!!详见 int strtotime ( string time [, int now] ) |
date的参数
每一个参数的格式分别表示:
a - "am" 或是 "pm"
a - "am" 或是 "pm"
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
d - 星期几,三个英文字母; 如: "fri"
f - 月份,英文全名; 如: "january"
h - 12 小时制的小时; 如: "01" 至 "12"
h - 24 小时制的小时; 如: "00" 至 "23"
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
g - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
i - 分钟; 如: "00" 至 "59"
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
l - 星期几,英文全名; 如: "friday"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
m - 月份,三个英文字母; 如: "jan"
s - 秒; 如: "00" 至 "59"
s - 字尾加英文序数,二个英文字母; 如: "th","nd"
t - 指定月份的天数; 如: "28" 至 "31"
u - 总秒数
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
y - 年,四位数字; 如: "1999"
y - 年,二位数字; 如: "99"
z - 一年中的第几天; 如: "0" 至 "365"
其它不在上列的字符则直接列出该字符
(2)mysql:
代码如下 | 复制代码 |
int->datetime select from_unixtime(int_time) from table; datetime->int; select unix_timestamp(date_time) from table; |
时间操作:
代码如下 | 复制代码 |
select dayofweek('2012-2-2');返回一个星期的第几天 select dayofmonth('2012-2-2');返回一月中的第几天 select dayofyear('2012-2-2');返回一年中的第几天 |
类似函数: month() day() hour() week()......
+几天 date_add(date,interval 2 days);
-几天 date_sub(date,interval 2 days);
时间格式:
date_format(date,format)
select DATE_FORMAT('1997-10-04 22:23:00','%W %M %Y');
其他函数:TIME_TO_SEC() SEC_TO_TIME()...
最后我们总结一下关于在使用时间时在数据库是是用int ,varchar ,datetime这几种的查询效率比较吧。
测试四个表的更新,分别update 100条记录,并记录时间:北京PHP资源分享门户d*V.~x G/QO
表一:页面运行时间: 2.62180089951 秒(非定长,int时间)北京PHP资源分享门户
表二:页面运行时间: 2.5475358963 秒(定长,int时间)
表三:页面运行时间: 2.45077300072 秒(varchar,datetime时间)
表四:页面运行时间: 2.82798409462 秒(char,datetime时间)
大数据量下,如果存在大量的select * from table where 时间>XX这样的查询,在MySQL5.1时使用int换datetime是有意义的。
php mysql日期比较代码
更多更好详细http://www.111cn.net/phper/21/d40b994ac43e630f316940ea4976564c.htm
代码如下 | 复制代码 |
<?php |
连接再选择数据库
代码如下 | 复制代码 |
<?php @mysql_select_db("test") //选择数据库mydb ?> |
这样我们就可以实现连接到数据库了
可能碰到的问题
运行代码出现:Call to undefined function 'mysql_connect()'… 失败
这个提示function undefined是说没有mysql_connect()函数,
解决方法如下
将php_mysql.dll和libmysql.dll文件拷贝至c:winntsystem32中(我漏了libmysql.dll)
找到php.ini中的;extension=php_mysql,去掉前面的";" 重启服务器
好了万事具备了,现在我们就差一个简单的连接实例
例1
conn.php文件代码如下:
代码如下 | 复制代码 |
<?php $conn = @mysql_connect("localhost", "root", "root") or die("数据库链接错误"); mysql_select_db("data", $conn);//data为数据库名称 mysql_query("set names 'GBK'"); //使用GBK中文编码; ?> |
index.php文件代码如下:
代码如下 | 复制代码 |
<?php |
这样我们就实现的简单的php mysql连接并查询出我们需要的数据了。
更多关于php mysql数据连接
http://www.111cn.net/phper/18/60db56d779d2a21cfc4c596e1c3880e4.htm
相关文章
- 通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
- 1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
- “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
- 今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1,然后再次仔细观察控制台输...2014-05-31
mysql数据库中的information_schema和mysql可以删除吗?
新装的mysql里面有两个数据库:information_schema 和 mysql 。他们是干么用的?可以删除么?当然是不可以删除的。 1.information schema 是mysql系统用的所有字典信息,包括数据库系统有什么库,有什么表,有什么字典,有什么存...2014-05-31- 本文给大家简单介绍下c实现linux下的数据库备份的方法和具体的源码,十分的实用,有需要的小伙伴可以参考下。...2020-04-25
mysql自动定时备份数据库的最佳方法(windows服务器)
网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作,这里脚本之家小编为大家分享与整理了几个软件方便大家使用...2016-11-22- 本文章来给大家介绍一个PHP利用XML备份MySQL数据库实例,这种方法个人认为只适用小数据量,并且安全性要求不高的用户了。 以下是在Linux下通过Apache+PHP对Mysql数据...2016-11-25
godaddy空间怎么创建mysql数据库 godaddy数据库创建方法
godaddy空间算是一个在国内最受欢迎的国外空间了,小编为一朋友买了一个godaddy空间了,但绑定好域名与ftp之后发现数据库不知道如何创建了,下面经一朋友指点得到了解决办...2016-10-10- 对于拟虚空间我们肯定没有操作服务器的权限此时要备份数据库我们可以集成在网站后台来操作,下面一起来看一篇关于PHP实现MySQL数据库备份的源码教程,具体的如下所示。...2016-11-25
- 首先需要通过PHP来连接MySQL数据库: #连接数据库 下面是最简单的PHP连接MySQL数据库的代码: 代码如下 复制代码 <?php $link=mysql_connect(...2016-11-25
php中实现mysql数据库备份与linux自动定时备份代码
文章介绍了二种数据库备案的代码,一种是我们php写的常用的数据库备份类,另一种是为linux朋友提供的一个自动定时备份mysql数据库的代码,有需要的同学可以参考一下。...2016-11-25- php教程 列出MySQL数据库教程中所有表二种方法 PHP代码如下: function list_tables($database) { $rs = mysql教程_list_tables($database); $tables = a...2016-11-25
- 给mssql降权了,但出现有个问题以前都是利用sql自带的作业来备份数据库,现在不行了....2016-01-27
- <?php $database='';//数据库名 $options=array( 'hostname' => '',//ip地址 'charset' => 'utf8',//编码 'filename' => $database.'.sql',//文件名...2016-11-25
- 一.首先把mysql的服务先停掉。 二.更改MySQL配置文件My.ini中的数据库存储主路径...2013-09-26
- php导入excel文件入mysql数据库我们是需一借助一个phpexcel类文件了,有了这个类文件我们就可以快速简单的导入excel到mysql数据库中,下面来给大家整理一个例子,希望能对...2016-11-25
- 下面是一款简单的php操作数据库的程序,我们是先讲php连接mysql数据库,然后再执行sql查询语句再把我们要的记录显示出来,最后关闭与mysql数据库的连接。 $host = 'lo...2016-11-25
- 以下是在Linux下通过Apache PHP对Mysql数据库的备份的文件代码: 文件一、Listtable.php (文件列出数据库中的所有表格,供选择备份) <html> <head> <title> 使用XM...2016-11-25
php怎么打开数据库 Php连接及读取和写入mysql数据库的常用代码
小编推荐的这篇文章介绍了Php连接及读取和写入mysql数据库的常用代码,非常实用,有兴趣的同学可以参考一下。 既然现在你看到了这篇文章,说明你肯定知道PHP和MySQL是...2017-07-06