解决phpmyadmin中文乱码问题–修改phpmyadmin语言配置文件

解决phpmyadmin中文乱码问题。。。

去phpMyAdmin的根目录下,打开以下这个文件:

libraries/select_lang.lib.php
  
1、找到有”zh-gb2312″的那一行,把’zh-gb2312′ 改成 ‘zh-gb2312-utf-8′
  为什么这样加?那是因为服务器会把没有”-utf-8″的语言过滤掉,在libraries/database_interface.lib.php 第168行,根据英文说:“为了防止混淆”,或者如果不把’zh-gb2312’ 改成 ‘zh-gb2312-utf-8’,可以去掉过滤吧。把那个if去掉就OK了。

 2、找到”$mysql_charset_map = array(“那一行
  把’gb2312’ => ‘gb2312’,
  改成 ‘gb2312’ => ‘latin1’,

  保存,OK,在进入phpMyAdmin管理,选择语言chinese simplified(zh-gb2312-utf-8)
        切记要选择语言为chinese simplified(zh-gb2312-utf-8)!

破解ZEND加密PHP的源程序代码

http://www.derickrethans.nl/vld.php

下载在这里

http://pecl.php.net/package/vld/0.8.0

==================
大致介绍在这里
==================
Vulcan Logic Disassembler

The Vulcan Logic Disassembler hooks into the Zend Engine and dumps all the opcodes (execution units) of a script. It was written as as a beginning of an encoder, but I never got the time for that. It can be used to see what is going on in the Zend Engine.

New Features in 0.8

PHP 5.0 / PHP 5.1 support.
vld will only show opcodes if the setting vld.active is set to 1.
New Features in 0.6

Class methods info is only dumped if they contain some user defined functions.
Clean up the framework for better opcode display.
Print extended value for function calls (# of args in that case).
Op code elements are only printed when they are actually used.
Download and Installation Instructions
The extension is not totally finished yet, but it works fine for me. If you have questions, feel free to send me an e-mail (but read this first) at derick at php dot net. If you like this piece of software, feel free to checkout my wishlist or Andrei’s. This improves chances that we will be continuing developing VLD.

You can download the source here or get it from CVS. The CVS root is “[email protected]:/repository”, the module is “vle” (not “vld”) and the password is “srmread”.

It’s not hard to use this extension, but it might not work with all PHP versions. Here are the instructions to get it to work:

Unpack the tarball: tar -xzf vld-0.8.0.tgz.
cd into the newly created directory.
Create the configure script: phpize
Now run “./configure” followed by “make install”.
That’s it, if you now run PHP from the command line and add the -dvld.active=1 parameter VLD will spit out the opcodes:

php -dvld.active=1 program.php

解密ZEND加密后的PHP文件 http://www.huanle.net/down/vld.php

先下载: vld-0.8.0

下载地址 http://www.huanle.net/down/vld.php

执行

#tar -xzf vld-0.8.0.tgz //解压
#mv vld-0.8.0 vld //重命名
#cd -R vld ../php-4.3.8/ext //拷贝vld目录到php的解压目录下的ext中
#cd php-4.3.8
#rm configure //删除configure,因为下面的buildconf会重新生成新的configure
#./buildconf //如果出现错误,就按提示加上相应的参数.
#./configure –with-mysql –with-apxs2=/usr/www/bin/apxs –enable-vld 重新检查php
#make 编译
#make install 安装

服务器必须先安装ZendOptimizer
运行Zend后的文件,查看源代码就可以看到了.

PHP十大建站开源程序,你知几个?

目前互联网上有无数个开源的建站程序可供大家选择使用,对现在的站长来说真的是容易多了,10年前我作网站的时候,一个小聊天程序也要自己一句一句
的写,看看现在的开源程序,层出不穷。太多了也就不知道选哪个好了,很多初学者买域名建网站,可是不知道如何下手,希望这篇文章能给您的网站建设开个好
头,这也就是我Anki写这篇文章的目的。

1、PhpBB -
论坛讨论板
phpBB具有友好的用户界面,使用了当今网 络上流行的php语言工作,可以搭配MySQL,MS- SQL,PostgreSQL,
和Access/ODBC等数据库系统使用。适合于大多数的网站用来搭建论坛系统。软件的开发成员来自于开源社区,是一个国际性的开源项目,2000年6
月开始项目以来,各开发成员们坚持开源精神,为软件的稳定可用贡献了各自的力量。
主要功能特点:
支 持流行的数据库服务器;论坛和发贴数无限制;多国语言接口界面;支持开设公共和私用性论坛;集成了强大的搜索工具;有大量模版来支持用户实现不同的论坛表 现风格;支持基于cookie和url等两种安全会话机制;对用户和组有安全分级管理机制;用户发贴数统计,用户等级授勋等实用功能。
访问:
官方主页

下载地址:
sourceforge下载

2、Discuz! -论坛讨论板
Discuz!,全称 Crossday Discuz!
Board,是一个通用的论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能
力和可高度定制的论坛服务。Discuz! 的基础架构采用世界上最流行的 web 编程组合 PHP+MySQL/PgSQL
实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。 Discuz!
无论在稳定性,负载能力,安全保障等方面都居于国内外同类产品领先地位。Discuz!应该说基本上占领了国内的个人站长论坛市场,个人也非常推崇这款论
坛程序。
空间联盟的论坛
就是使用Discuz!程序的一个例子。
适用于以下的应用领域
对 稳定性和负载能力要求较高的门户网站大中型企业的客户在线调查、技术与产品服务企事业单位内部交流与沟通,办公协作与自动化(OA)大中专院校的学生、教 工与校友讨论区已经发展到一定规模,具有相当访问量的个人网站商业、交友、科技、影音、下载等等方面的专门网站地方政府、电信公司或爱好者建立的地域性讨 论区
访问:
官方主页

下载地址:
http://www.discuz.net/download/

PHPWind

动网论坛
也是不错的论坛程序,这里就不一一介绍。

3、PHPnuke - 整站内容管理系统(CMS)

内容管理系统应该首推PHPnuke。众所周知,国内几个著名个人资讯网,例如cnbeta、联客资讯,都是以PHPnuke作为信息平台的。
phpNuke原本是开源软件,但是从7.8版本开始就收费了。只要懂得LAMP(linux + apche + mySQL +
php)的人,就能顺速的通过phpNuke架设自己的网站系统,基本上网站需要的功能都包括了:新闻、下载、链接、论坛……最突出的就是可以自己写
module扩充功能,或者将其他应用嵌入到phpNuke中;通过skin的方式方便的更改网站的风格。
cnBeta
是一个典型的应用实例。
访问:
http://phpnuke.org/

下载地址:
PHPnuke 8.0简体中文版

4、Mambo - 整站内容管理系统(CMS)

Mambo,中文意思为曼波音乐(源于古巴黑人音乐),是这个星球上功能最强大的开放源码的智能建站系统之一。在2004年4月20日伦敦举行的
Linux用户和开发员大会上,Mambo从众多优秀的开放源码系统中脱颖而出,获得2004年度最佳Linux开放源码系统奖项,和它同场竞技的有
KDE、Firebird
SQL以及eGroupware等,这些都是知名度很高,被广泛使用的系统,现在却沦为Mambo的手下败将,可想而知,Mambo的魔力有多大!
Windows Live知识库
就是Mambo应用的一个例子。
主要功能特点:
完 全的数据库驱动新闻,产品或服务类别可完全编辑和管理内容可由多个编辑者上传与编辑完全的可定制外观可由浏览器上传图片或其他媒体文件,并可将图片使用于 所有栏目中动态的论坛/投票等系统可运行于Linux, FreeBSD, MacOSX server, Solaris 和 AIX
访问:
官方主页

下载地址:
MamboV4.6.1 中文版

当然还有很多国内外优秀的CMS开源程序,这里不能一一详述。

5、Gallery -
图库相册程序

Gallery 是一个非常有名的免费开源图库相册软件,基于 PHP 和 MySQL, PostgreSQL
等数据库。功能非常强大,有丰富的扩展可以下载,安装很简单,环境符合后,按照提示一路 continue 就行了。 Gallery
的界面定制不复杂,只有几个模版文件,也有很多免费的皮肤可以下载,因为是一套老程序了,国外有很多人为它服务,免费皮肤很容易找到。
语言方面,已经有了简体、繁体中文的语言文件支持,编码是 UTF-8, 符合国际标准。Gallery 现在的稳定版是 2.0.3, 另外也有 2.1 的每夜构建版可以下载,每夜版也是相当稳定的,这次我安装的就是每夜版。
与 Coppermine 相比, Gallery 的功能更强大一些,扩展更丰富。安装方面 Coppermine
简单一些,只有3步,Gallery 10来步。 模版定制上 Coppermine 比较复杂,虽然文件不多,但各项语法比较费事,不是很直观的
html,需要用到一些 PHP, 相比 Gallery 的模版定制更简单一些。我这里有一个Gallery相册实例: http://msliver.com
Gallery 的系统要求:
平 台 – UNIX (BSD, Linux, …) or Windows网络服务器 – Apache, Microsoft IIS, Zeus, …PHP – PHP 4.1.0 或更高, PHP safe_mode 必须关闭图片处理库 – ImageMagick, NetPBM. Gallery 2 还加上了对 GD 和 GraphicsMagick 的支持。数据库 (Gallery 2) – MySQL 3.x, 4.x or 5.x, PostgreSQL 7.x or 8.x, oracle 9i or 10g, DB2 8.2 (Gallery 1.x 不使用数据库)
访问:
官方主页

下载地址
Gallery 2.0.3 下载
( SourceForge 下载,3个安装包,里边包含的模块多少不一样,全部的解压后30M左右,典型的16M左右,最小的安装包 7/8M)。

6、 WordPress
-博客日志管理系统
Wordpress是大家都很熟悉的开源博客平台,本站
TopDig日志

是用Wordpress搭建的。
WordPress是一种使用PHP语言和MySQL数据库开发的Blog(博客、网志)引擎,用户可以在支持PHP和MySQL数据库的服务器上建立自
己的Blog。
它是一个功能非常强大的博客系统,插件众多,易于扩充功能。安装和使用都非常方便。目前WordPress已经成为主流的Blog搭建平台。
WordPress的原版是英文版的,但是有爱好者开发了中文语言包,使其可以支持中文。 它拥有几百个各式插件和不计其数的模板样式。
WordPress的功能特性:
进 行文章发布、分类、归档。支持文章、评论、分类等多种形式的RSS输出。提供链接的添加、归类功能。支持评论的管理,防垃圾功能。支持对风格(CSS)和 程序本身(PHP)的直接编辑、修改。在Blog系统外,方便的添加所需页面。通过对各种参数进行设置,使你的Blog更具个性化。生成静态html页面 (需要mod_rewrite支持)。通过选择不同主题,方便地改变页面的显示效果。通过添加插件,可提供多种特殊的功能。支持Trackback和 pingback。支持针对某些其它blog软件、平台的导入功能。支持多用户。
访问:
官方主页

下载地址:
sourceforge下载


7、OpenPNE
-社会化交友平台
OpenPNE 是优秀的全球开源的Social Networking and group collaboration platform(社交网络和团体协作平台)web应用程序,在世界各地已经拥有10多万用户(运营者),被称为SNS引擎,SNS服务功能和易于使用的 特性让越来越多的用户喜欢并开始使用他。OpenPNE整体架构仿效日本最大的sns网站mixi,和MySpace有着80%以上的相似度,除具备 MySpace等sns网站基本功能,最为人称道的是他的用户隐私保护机制非常安全,使用OpenPNE你将远离各种广告及不受欢迎者的骚扰,中文官方在 本地化的同时完全考虑到国内用户需求提供了更人性化的细节调整和本地化程序开发,OpenPNE用户界面非常简洁,更符合用户习惯,使用者将非常容易上 手,使用OpenPNE您可以自由构建公司内部sns,也可以根据自己的兴趣爱好打造属于自己的社交圈、兴趣圈、商业圈、朋友圈,OpenPNE安装非常 简单,官方也为广大用户提供了简单明了的安装向导。
OpenPNE的安装环境:
Apache 1.3.*/2.0.* 以上PHP 4.3.*/5.0.*PHP mbstring 扩展PHP GD库 (JPEG/GIF/PNG)PHP mcrypt 扩展(推荐)·MySQL 4.0/4.1·邮件服务器Postfix 2.1.* (推荐)
访问:
官方主页

Demo:
http://www.MyLinker.cn

下载地址:
http://www.openpne.com.cn/corp/DownLoad.shtml
(目前官方只提供了繁体中文版下载)

8、Pligg
-Digg类社会化信息平台
Pligg是一个Web2.0内容管理系统( CMS )。
与现存的CMS最大不同之处在于它能够让你的访问者们自己决定网站的内容并提供让他们建立一个交流
。Pligg目前还没有走出beta,因此模版和插件也相对较少,大部分程序员们都处于观望状态,目前的版本为beta
9.5。Pligg的模版除了自带的:”Digital Nature”,”Paul01″,”yget”,”Mollio-Beat”
之外真的很难找到其他的可以使用的模版。
来自官方的一段话:“Pligg,最灵活的类似Digg的Web2.0
CMS系统!网页设计师可以使用Pligg做他(她)想做的任何事情。稍微懂一些PHP和Mysql的知识即可安装Pligg。如果需要修改和管理
Pligg,可能有点难度。对于精通Web开发语言的朋友,Pligg是一个定制化非常强的CMS系统。”。
功能特性:
安装简单支持多用户用户提交、用户投票、用户决定首页文章支持用户一定程度在线交流可自定制模版和插件
访问:
官方主页

下载地址:
sourceforge下载


9、MediaWiki
-开源Wiki知识库平台
MediaWiki是全球最著名的wiki程序,运行于PHP+MySQL环境。MediaWiki从2002年2月25日被作为维基百科全书的系
统软件,并有大量其他应用实例。目前MediaWiki的开发得到维基媒体基金会的支持。
MediaWiki是建立wiki网站的首选后台程序,目前国内的天下维客等站点都采用这套系统。
MediaWiki一直保值着持续更新。其原作者为德国的Magnus Manske。
MediaWiki中文支持良好,功能特性完善,学习资料充足,是建立wiki网站的首选wiki程序。MediaWiki能方便的建立网站并让大家参与内容编辑,推荐站长选用。
wiki的重要特征:
记 录所有的改动版本,能方便的查阅历史更新记录,这使得开放性编辑成为可能自动产生链接,编辑文本中中括号中的内容(如“[[X条目]]”)将自动产生链接 允许使用模板,方便对相同内容的重复使用、更新支持分类,并根据分类在不同的文章之间自动产生关联允许每个用户自行选择系统外观中文支持好
访问:
官方主页

下载地址:
sourceforge下载


10、Gregarius
-RSS聚合程序
Gregarius是一个基于web的RSS/RDF/ATOM聚合程序,它运行于您的web服务器,聚合您想要的任何资源。
这个开源聚合站程序是新兴起的RSS聚合站的开源先锋,虽然目前还没有完全脱离测试版本,但是功能已经相当齐全,并能较好的支持中文。这里有一个
演示站点
供大家参考。
功能特点:
完全基于web。简单、有密码保护的管理及设置。运用AJAX技术。支持全文搜索。完全符合web标准。基于开源协议的免费软件。
访问:
官方主页

下载地址:
sourceforge下载

数字话梦一

1992年的美国男篮梦之队场均赢对手43.8分,创造了奥运会记录。当时同梦之队实力最接近的是克罗地亚男篮,他们以32分的劣势输给了梦之队。巴克利以场均18分的得分超越了乔丹,而且巴克利的投篮命中率和三分命中率更是以惊人的71.1%和87.5%排在全队之首。

以下让我们通过数字来了解这支世界上最为伟大的篮球队:

0:

在1992年美国梦一队参加的全部八场奥运会比赛中主教练袋利一次暂停都没有用过。

2.8:

斯托克顿的场均得分数,场均2.8分的得分排在全队的第12位(最后一位),无私的他为队友制造出了更多的得分良机。

15:

尤因在比赛中的盖帽总数,15次封盖在梦一队中排名第一位。

36.5%:

对手的投篮命中率

37:

乔丹在比赛中的总抢断数,37次的抢断数让乔丹位居梦一队之首。

47:

皮蓬总的助攻次数,47次助攻让“野牛”成为梦一队的助攻王。

4.8:

莱特纳的场均得分数,4.8分的场均得分排在梦之队的第十位。

5.3:

马龙和穆林的场均篮板球数,两人同以5.3个篮板球数,成为了全队的篮板王。

57.8%:

梦一队在所有比赛中的投篮命中率。

7:

1989年4月7日国际篮联正式通过投票决定允许NBA球员参加国际大赛,其中包括奥运会和篮球世锦赛。(56票支持NBA球员参加世界大赛,13票反对参加,1票弃权。)

71.1%:

查尔斯-巴克利的投篮命中率(83投59中),71.1%的投篮命中率位居全队第一位。

8:

梦一队在奥运会比赛中记录,8战全胜获得金牌。

8:

“魔术师”约翰逊的场均得分数,场均8分的得分位居全队的第九位。

8.4:

“大鸟”伯德的场均得分数,8.4分的场均得分位居全队第八位。

87.5%:

巴克利的三分球命中率(8投7中),87.5%的三分命中率同样位居全队第一位。

9:

皮蓬和大卫-罗宾逊的场均得分数,两人同以9分位居全队第7位。

90%:

莱特纳的罚球命中率(20罚18中),90%的罚球命中率位居全队首位。

9.5:

尤因的场均得分数,场均9.5分的尤因位居全队的第6位。

10.5分:

德雷克斯勒的场均得分数,10.5分的场均得分让他位居全队的第5位。

12.9:

穆林的场均得分数,12.9分的场均得分让“上帝左手”排在全队的第4位。

13:

卡尔-马龙的场均得分数,场均13分的马龙排在全队的第3位。

14.9:

飞人乔丹陛下的场均得分数,14.9分的场均得分让乔丹排在全队的第2位。

18:

巴克利的场均得分数,18分的场均得分让巴克利超越乔丹成为了梦一队的得分王。

32:

在梦一队奥运会中与对手交手中得分最接近的一场比赛,在最后的决赛中美国队117-85战胜了克罗地亚男篮,32分的分差是梦一队在所有的8场比赛中赢对手最少的一次。

43.8:

梦一队在奥运会全部的8场比赛中场均赢对手43.8分。

51.5:

在波特兰举行的奥运会资格赛中,梦一队场均赢取对手51.5分。

以下为8场比赛的具体比分(排列顺序按美国得分从高到低):

美国103-70克罗地亚

美国111-68德国

美国115-77波多黎各

美国116-48安哥拉

美国117-85克罗地亚

美国122-81西班牙

美国127-76立陶宛

美国127-83巴西

美国梦一男篮在参加的全部8场比赛中场均得到117.3分。

替补席上的巨星

众星准备比赛

乔丹飞身扣篮

乔丹庆祝胜利

世界冠军接受颁奖

巨星在比赛中

PHP生成IP地址图片的代码

<?php
$img_number = imagecreate(275,25);
$backcolor = imagecolorallocate($img_number,102,102,153);
$textcolor = imagecolorallocate($img_number,255,255,255);

imagefill($img_number,0,0,$backcolor);
$number = ” Your IP is $_SERVER[REMOTE_ADDR]”;

Imagestring($img_number,10,5,5,$number,$textcolor);

header(“Content-type: image/jpeg”);
imagejpeg($img_number);
?>

<?php
Header(“Content-type: image/PNG”);
$im = imagecreate(150,20);//生成IP图片
$white = ImageColorAllocate($im, 255,255,255); //背景颜色
$color = imagecolorallocate($im, 255, 180, 37); //文字颜色
imagefill($im,0,0,$white);
imagestring($im,5,2,2,”[“.$_SERVER[“REMOTE_ADDR”].”]”,$color);
ImagePNG($im);
ImageDestroy($im);
?>

pageft.php 分页类

<?php
//为了避免重复包含文件而造成错误,加了判断函数是否存在的条件:
//if(!function_exists(pageft)){
//定义函数pageft(),三个参数的含义为:
//$totle:信息总数;
//$displaypg:每页显示信息数,这里设置为默认是20;
//$url:分页导航中的链接,除了加入不同的查询信息“page”外的部分都与这个URL相同。
//   默认值本该设为本页URL(即$_SERVER[“REQUEST_URI”]),但设置默认值的右边只能为常量,所以该默认值设为空字符串,在函数内部再设置为本页URL。
function pageft($totle,$displaypg=20,$url=”){

//定义几个全局变量:
//$page:当前页码;
//$firstcount:(数据库)查询的起始项;
//$pagenav:页面导航条代码,函数内部并没有将它输出;
//$_SERVER:读取本页URL“$_SERVER[“REQUEST_URI”]”所必须。
global $page,$firstcount,$pagenav,$_SERVER;

//为使函数外部可以访问这里的“$displaypg”,将它也设为全局变量。注意一个变量重新定义为全局变量后,原值被覆盖,所以这里给它重新赋值。
$GLOBALS[“displaypg”]=$displaypg;
$page=$_GET[‘page’];
if(!$page) $page=1;

//如果$url使用默认,即空值,则赋值为本页URL:
if(!$url){ $url=$_SERVER[“REQUEST_URI”];}

//URL分析:
$parse_url=parse_url($url);
$url_query=$parse_url[“query”]; //单独取出URL的查询字串
if($url_query){
//因为URL中可能包含了页码信息,我们要把它去掉,以便加入新的页码信息。
//这里用到了正则表达式,请参考“PHP中的正规表达式”(http://www.pconline.com.cn/pcedu/empolder/wz/php/10111/15058.html
$url_query=ereg_replace(“(^|&)page=$page”,””,$url_query);

//将处理后的URL的查询字串替换原来的URL的查询字串:
$url=str_replace($parse_url[“query”],$url_query,$url);

//在URL后加page查询信息,但待赋值:
if($url_query) $url.=”&page”; else $url.=”page”;
}else {
$url.=”?page”;
}

//页码计算:
$lastpg=ceil($totle/$displaypg); //最后页,也是总页数
$page=min($lastpg,$page);
$prepg=$page-1; //上一页
$nextpg=($page==$lastpg ? 0 : $page+1); //下一页
$firstcount=($page-1)*$displaypg;

//开始分页导航条代码:
$pagenav=”显示第 “.($totle?($firstcount+1):0).”-“.min($firstcount+$displaypg,$totle).” 条记录,共 $totle 条记录
“;
$pagenav.= ”     共”.$lastpg.”页     “;
//如果只有一页则跳出函数:
if($lastpg<=1) return false;

$pagenav.=”<a href='”.$url.”=1′>首页</a>     “;
if($prepg) $pagenav.=”<a href='”.$url.”=”.$prepg.”‘>前页</a>     “; else $pagenav.=”     前页     “;
if($nextpg) $pagenav.=”<a href='”.$url.”=”.$nextpg.”‘>后页</a>     “; else $pagenav.=”     后页     “;
$pagenav.=”<a href='”.$url.”=”.$lastpg.”‘> 尾页</a> “;

//下拉跳转列表,循环列出所有页码:
/*
$pagenav.=”<select name=select1 onChange=FreindlyFun()>”;
for($i=1;$i<=$lastpg;$i++)
{

if($i==$page)
{
$pagenav.=”<option value='”.$url.”=”.$i.”‘ selected>$i</option>”;
}
else
{
$pagenav.=”<option value='”.$url.”=”.$i.”‘>$i</option>”;
}
}

$pagenav.=”</select>”;
*/
}
//}
//echo “AAAA”;
?>
//———–用法

连接sqlserver

<?php
$query=”select * from zhufu”;
$result=mssqlresult($query);
$numrows = mssql_num_rows($result);
$pagesize=20;
$Url=”index.php”;
pageft($numrows,$pagesize,$Url);
$sql = “select top $pagesize * from zhufu where (id not in (select top $firstcount id from zhufu order by id desc)) order by id desc”;
//echo $sql;
$result1= mssqlresult($sql);
while( $row=mssql_fetch_assoc($result1))
{
$row1=trim($row[“city”]).trim($row[“xuexiao”]);
echo
“<tr>
<td class=’bline fontblack’ align = ‘center’>”.$row[“id”].”</td>

<td class=’bline’ align=’left’><span class=’fontgreen’><font color=’green’>”.trim(iconv(“gb2312″,”utf-8”,$row[“sendname”])).”</font> </span>给”.trim(iconv(“gb2312″,”utf-8″,$row1)).”的<font color=’blue’>”.trim(iconv(“gb2312″,”utf-8”,$row[“name”])).”</font> 的祝福:<a href=’info.php?id=”.$row[“id”].”‘ target=’_blank’><font color=’#E60638′>”.trim((cut_str(iconv(“gb2312″,”utf-8”,$row[“neirong”]),20))).”….</font></a></td>
<td class=’bline’ align = ‘center’>”.$row[“riqi”].”</td>
</tr>
“;
}
?>

//—–

//—-连接mysql

$query=”select * from ChapterList “;
$result=mysql_query($query);
$total=mysql_num_rows($result);
pageft($total,20);
$query=”select * from ChapterList order by ChapterID desc limit $firstcount,$displaypg “;

$result=mysql_query($query) or die(“Invalid query: ” . mysql_error());
while ($link = mysql_fetch_array($result,MYSQL_BOTH))

{}

PHP产生随机字符串函数

<?php
/**
* 产生随机字符串
*
* 产生一个指定长度的随机字符串,并返回给用户
*
* @access public
* @param int $len 产生字符串的位数
* @return string
*/
function randStr($len=6) {
$chars=’ABDEFGHJKLMNPQRSTVWXYabdefghijkmnpqrstvwxy23456789#%*’; //characters to build the password from
mt_srand((double)microtime()*1000000*getmypid()); // seed the random number generater (must be done)
$password=”;
while(strlen($password)<$len)
$password.=substr($chars,(mt_rand()%strlen($chars)),1);
return $password;
}
?>

如何提升网站的浏览率──Alexa网站排名

网站世界排名权威-Alexa

Alexa(www.alexa.com)是 一家专门发布网站世界排名的网站。以搜索引擎起家的Alexa创建于1996年4月,目的是让互联网网友在分享虚拟世界资源的同时,更多地参与互联网资源 的组织。2002年5月Alexa放弃了自己的搜索引擎转而与Google合作。Alexa每天在网上搜集超过1,000GB的信息,然后进行整合发布, 现在他搜集的URL数量已经超过了Google。下图是他们自己给出的一个信息量比较图。纵轴为已有的URL地址数量,以十亿为单位。也就是说在量上, Alexa位居世界四大搜索引擎第一位,已超过35亿。

[/font] [font=宋体]虽然Alexa的搜索引擎很好用,但是网站浏览率统计和世界排名却是它最吸引人的地方,Alexa不仅给出多达几十亿的网址炼接,而且 为其中的每一个网站进行了排名。可以说,Alexa是当前拥有URL数量最庞大,排名信息发布最详尽的网站。

Alexa 的网站世界排名主要分两种:综合排名和分类排名。综合排名也叫绝对排名,即特定的一个网站在所有网站中的名次。Alexa每三个月公布一次新的网站综合排 名。此排名的依据是用户炼接数(Users Reach)和页面浏览数(Page Views)三个月累积的几何平均值。如当前世界排名最靠前的网站:雅虎(www.yahoo.com)高居榜首(每日Internet用户中每百万人平均有308,000人会访问雅虎),MSN(www.msn.com)紧跟其后,第五名是最有名的搜索引擎Google(www.google.com)等。

Alexa 分类排名,一是按主题分类,比如新闻、娱乐、购物等,Alexa给出某个特定网站在同一类网站中的名次。Alexa将其收集到的网站共分了16个大类,每 个类下又分为多个主题。二是按语言分类,目前共分21种语言,比如英文网站、中文网站等,给出特定站点在所有此类语言网站中的名次,其中中文网站分成简体 和繁体两种来统计。对于中文网站的排名,目前只发布排在前100名的网站名单。两岸三地一些著名中文网站当前的世界排名情况如下。

新浪www.sina.com.cn 7名

网易www.163.com 11名

搜狐www.sohu.com 12名

Tom.com www.tom.com 17名

HiNet www.hinet.net 43名

网络家庭www.pchome.com.tw 56名

蕃薯藤www.yam.com 115名

澳门彩票www.macauslot.com 208名

联合早报www.zaobao.com 234名

凤凰卫视www.phoenixtv.com 287名

网上行www.netvigator.com 358名

MSN 香港www.msn.com.hk 442名

Alexa工具条及Alexa使用详解

Alexa的浏览率统计是根据用户安装Alexa工具条(Alexa Toolbar)的信息反馈及参考IP来源的区域分布作基数综合统计来排名。如果IE中嵌入了Alexa工具条,那么每访问一个网站,其综合排名就会显示出来。我们可到下列地址下载Alexa工具条:http://download.alexa.com/alexa7/startpage.html?p=TrafficDet_W_t_40_B2

以世界网络(www.linkwan.com)为例,显示其综合排名为6,014(2004年2月3日数据,下同)。

[/font]

[font=宋体]如果通过Alexa查看一个网站,首先看到的就是该网站的综合排名,并且配有当日网站首页截图,和网站内容的简单文字说明。Alexa还会根据网民对网站的评论,在综合排名信息中,用”星”来给网站评一个等级,最高为”5星”。

[/font]

[font=宋体]Alexa将综合排名500强网站在自己网站上强力推荐。每个通过Alexa访问的网站,Alexa首先给出了有关该网站的信息:综合排名、相关网站炼接、网站基本情况、联系方式、关于该网站的评论等。如以下是linkwan.com站点的信息:

[/font]

[font=宋体]上图显示了网友最多从哪些站点访问到该站,下图显示了该站的基本情况。

[/font]

[font=宋体]通过网页上的炼接”See Traffic Details”,可以查看到有关该网站浏览率的详细统计数据和图表。以世界网络(http://www.linkwan.com)为例,除了网站综合排名简介外,还有如下信息:

1.距当日最近的前3个月、前6个月、一年和二年的访问量排名数据。下图为linkwan.com自2004年2月3日上溯6个月来的访问量排名走势图:

[/font]

[font=宋体]由上图可见,linkwan.com的访问量排名总体呈上升趋势,连续2个多月排名在6000名左右。

2.综合排名统计表,包括:今日排名、1周前排名、3个月前排名,以及与上一季度比较排名是上升还是下降。以下是linkwan.com的综合排名。

[/font]

[font=宋体]3.当日访问用户数、一周前每日平均访问用户数、前三个月的每日平均访问用户数(每百万人为单位)和当日、前一周、前三个月按访问用户数的排名,以及3个月来这些数量的变化。如下图所示:

[/font]

[font=宋体]4.每个用户平均浏览页面数,分为:当日、前一周、前3个月分别统计。

[/font]

[font=宋体]除此之外,还有按被访页面数的排名,3个月来页面浏览量和以此为排名的名次两项变化。

既然Alexa世界排名能提供如此详尽的浏览率及世界排名信息,大家如果想在自己网站公开自己Alexa世界排名,可安装上Alexa按键吧!因此就把Alexa排名按键为各位介绍一下(安装此按键不影响世界排名)。

排名按键可显示网站的排名。如世界网络(http://www.linkwan.com)的排名为6,014位,一般显示的排名是两天前的排名。如果希望显示你的网站的排名信息,只需将代码中红色文字(网址)部分替换成你的网站地址,并放在网站相应的位置即可。

[/font][font=宋体]

各位可在下列地址:http://www.alexa.com/site/site_stats/signup详细了解Alexa按键的相关信息。

提升网站的浏览率

如 此大量的网站地址,如此详尽的数据和统计,确立了Alexa的网站世界排名的权威。Alexa给出的排名无疑吊起众多与网站密切相关者的胃口。人们难免会 思考:为什么我们的网站排在他们的之后?怎样才能排得靠前一些?怎样才能提升网站的浏览率?也有人会问:这个排名科学吗?公正吗?为此,我们有必要了解一 下Alexa的浏览率统计和排名机制。

一.Alexa浏览率统计和排名的先决条件

Alexa的网站排名是按照每个特定网站的被浏览率进行排名的。浏览率越大,排名越靠前。

浏览率是针对定义在域上的网站进行统计的。如:www.sina.com.cn、news.sina.com.cn 和tech.sina.com.cn将被视作同一网站进行计数,因为它们同属于sina.com.cn这个域。但是也有例外,如个人主页,如果系统能够自动从URL地址分辨的话,将被视为彼此独立的网站。

提供同样内容的网站将被视为同一网站计算。比如,大中华印艺网使用www.cgan.com和www.cgan.org两个域名发布同样的内容,那么将被作为同一个网站来计算。

纳 入统计的访问量仅来自使用Alexa工具栏(Alexa Toolbar)的用户。也就是说,只有用户下载了Alexa工具栏,并将其嵌入自己的浏览器。这样,该用户访问某个网站的话,访问的记录才能算作被访问 网站的访问量。据Alexa统计,现在使用该工具栏的用户达数百万。

Alexa工具栏仅在windows操作系统下,Internet Explorer浏览器中使用有效,使用其它操作系统或者浏览器的访问将不能被计数。

遇到有安全保护或加密的站点,Alexa工具栏将自动关闭,因此那些安全系数高的网站,Alexa将不能对其进行搜索和统计排名。

二.Alexa浏览率算法

某 个特定网站被排名时,依据的浏览率数据是基于该网站3个月访问量记录的累积。也就是说Alexa每三个月发布一次排名结果,即通常说的名次。它的计算主要 取决于访问用户数(Users Reach)和页面浏览数(Page Views)。Alexa系统每天对每个网站的访问用户数和页面浏览数进行统计,通过这两个量的三个月累积值的几何平均得出当前名次。

访 问用户数(Users Reach)指通过Internet访问某个特定网站的人数。用访问某个特定网站的人数占所有Internet用户数的比例来表示。即:访问用户数=(访 问人数/全部Alexa用户数)x 100%,Alexa以每百万人作为计数单位。以世界网络(linkwan.com)为例,如果它的访问用户数为2%的话,就是说,随意抽取一百万的 Internet用户,其中有20,000人访问世界网络。

页面浏览数(Page Views)是指用户访问了某个特定网站的多少个页面。是所有访问该网站的用户浏览的页面数之和。每个用户浏览的页面数取平均值,是所有访问该网站的用户每天每人浏览的独立页面数的平均。同一人、同一天、对同一页面的多次浏览只记一次。

三.影响Alexa排名的其它因素

Alexa Toolbar的采用率在全球各地有所差异,受用户的语言、地域、文化等各方面的影响。因此英文网站相对于其它语言的网站,访问量数据更容易被充分地统计。

容易受网站对自己宣传的程度、做广告的多少、别的网站为其建立炼接的多少的影响。

排名的网站最好主动将自己的URL地址添加到Alexa中,否则访问量的统计会受到影响,而且Alexa不提供这些网站访问量的详细统计。

浏览率太小的网站统计数字可能不准确,总体上排名越靠前(浏览率越大)的网站统计数字就越可靠。一般来说,月访问量1000以下或排名100,000以后的网站统计数字是不准确的。
可 以肯定,任何的计算方法都不完美,所以我们也无法评述Alexa排名的公正性和科学性。但既然Alexa将相关统计信息通过Internet全球公开发 布,大家又都用Alexa的统计作为标杆,从中国到世界各国权威的新闻媒体在讨论一个著名网站的规模时,莫不以Alexa为标准。世界上也没有第二个像 Alexa那样的网站不需要你在网页中插入他的代码等等来计算排名,他对全世界所有网站一视同仁,我们就姑且相信其专业性和权威性。

最 重要的是,您是否找到了提升自己网站浏览率和使排名靠前的方法?希望通过以上的介绍,对大家有所启发。当然,并不是通过对Alexa的了解和相关工具的使 用,就可以保证网站浏览率和排名的提升,浏览率也与网站的品牌、规模和内容、专业程度、网页质量、服务器等很多因素相关,后将继续为大家介绍。

MySQL 备份和恢复

本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAMInnodb,文中设计的 MySQL 版本为 5.0.22。

目前 MySQL 支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb 所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件备份 binlog,或者用 mysqldump

1、mysqldump

1.1 备份

mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。
现在来讲一下 mysqldump 的一些主要参数:

  • –compatible=name它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。
  • –complete-insert,-c导出的数据采用包含字段名的完整 INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。
  • –default-character-set=charset指定导出数据时采用何种字符集,如果数据表不是采用默认的 latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。
  • –disable-keys告诉 mysqldumpINSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */;/*!40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。
  • –extended-insert = true|false默认情况下,mysqldump 开启 --complete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为 false 即可。
  • –hex-blob使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB
  • –lock-all-tables,-x在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 --single-transaction--lock-tables 选项。
  • –lock-tables它和 --lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用 --single-transaction 选项。
  • –no-create-info,-t只导出数据,而不添加 CREATE TABLE 语句。
  • –no-data,-d不导出任何数据,只导出数据库表结构。
  • –opt这只是一个快捷选项,等同于同时添加 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 选项。本选项能让 mysqldump 很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用 --skip-opt 禁用。注意,如果运行 mysqldump 没有指定 --quick--opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。
  • –quick,-q该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。
  • –routines,-R导出存储过程以及自定义函数。
  • –single-transaction该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDBBDB
    本选项和 --lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。
    要想导出大表的话,应结合使用 --quick 选项。
  • –triggers同时导出触发器。该选项默认启用,用 --skip-triggers 禁用它。

其他参数详情请参考手册,我通常使用以下 SQL 来备份 MyISAM 表:

/usr/local/mysql/bin/mysqldump -uyejr -pyejr \
--default-character-set=utf8 --opt --extended-insert=false \
--triggers -R --hex-blob -x db_name > db_name.sql

使用以下 SQL 来备份 Innodb 表:

/usr/local/mysql/bin/mysqldump -uyejr -pyejr \
--default-character-set=utf8 --opt --extended-insert=false \
--triggers -R --hex-blob --single-transaction db_name > db_name.sql

另外,如果想要实现在线备份,还可以使用 --master-data 参数来实现,如下:

/usr/local/mysql/bin/mysqldump -uyejr -pyejr \
--default-character-set=utf8 --opt --master-data=1 \
--single-transaction --flush-logs db_name > db_name.sql

它只是在一开始的瞬间请求锁表,然后就刷新binlog了,而后在导出的文件中加入CHANGE MASTER 语句来指定当前备份的binlog位置,如果要把这个文件恢复到slave里去,就可以采用这种方法来做。

1.2 还原

mysqldump 备份出来的文件是一个可以直接倒入的 SQL 脚本,有两种方法可以将数据导入。

  • 直接用 mysql 客户端例如:
    /usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql
  • 用 SOURCE 语法其实这不是标准的 SQL 语法,而是 mysql 客户端提供的功能,例如:
    SOURCE /tmp/db_name.sql;

    这里需要指定文件的绝对路径,并且必须是 mysqld 运行用户(例如 nobody)有权限读取的文件。

2、 mysqlhotcopy

2.1 备份

mysqlhotcopy 是一个 PERL 程序,最初由Tim Bunce编写。它使用 LOCK TABLES、FLUSH TABLEScpscp 来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上。mysqlhotcopy 只能用于备份 MyISAM,并且只能运行在 类UnixNetWare 系统上。

mysqlhotcopy 支持一次性拷贝多个数据库,同时还支持正则表达。以下是几个例子:

root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr \
db_name /tmp (把数据库目录 db_name 拷贝到 /tmp 下)
root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr \
db_name_1 ... db_name_n /tmp
root#/usr/local/mysql/bin/mysqlhotcopy -h=localhost -u=yejr -p=yejr \
db_name./regex/ /tmp

更详细的使用方法请查看手册,或者调用下面的命令来查看 mysqlhotcopy 的帮助:

perldoc /usr/local/mysql/bin/mysqlhotcopy

注意,想要使用 mysqlhotcopy,必须要有 SELECT、RELOAD(要执行 FLUSH TABLES) 权限,并且还必须要能够有读取 datadir/db_name 目录的权限。

2.2 还原

mysqlhotcopy 备份出来的是整个数据库目录,使用时可以直接拷贝到 mysqld 指定的 datadir (在这里是 /usr/local/mysql/data/)目录下即可,同时要注意权限的问题,如下例:

root#cp -rf db_name /usr/local/mysql/data/
root#chown -R nobody:nobody /usr/local/mysql/data/ (将 db_name 目录的属主改成 mysqld 运行用户)

3、 SQL 语法备份

3.1 备份

BACKUP TABLE 语法其实和 mysqlhotcopy 的工作原理差不多,都是锁表,然后拷贝数据文件。它能实现在线备份,但是效果不理想,因此不推荐使用。它只拷贝表结构文件和数据文件,不同时拷贝索引文件,因此恢复时比较慢。
例子:

BACK TABLE tbl_name TO '/tmp/db_name/';

注意,必须要有 FILE 权限才能执行本SQL,并且目录 /tmp/db_name/ 必须能被 mysqld 用户可写,导出的文件不能覆盖已经存在的文件,以避免安全问题。

SELECT INTO OUTFILE 则是把数据导出来成为普通的文本文件,可以自定义字段间隔的方式,方便处理这些数据。
例子:

SELECT * INTO OUTFILE '/tmp/db_name/tbl_name.txt' FROM tbl_name;

注意,必须要有 FILE 权限才能执行本SQL,并且文件 /tmp/db_name/tbl_name.txt 必须能被 mysqld 用户可写,导出的文件不能覆盖已经存在的文件,以避免安全问题。

3.2 恢复

BACKUP TABLE 方法备份出来的文件,可以运行 RESTORE TABLE 语句来恢复数据表。
例子:

RESTORE TABLE FROM '/tmp/db_name/';

权限要求类似上面所述。

SELECT INTO OUTFILE 方法备份出来的文件,可以运行 LOAD DATA INFILE 语句来恢复数据表。
例子:

LOAD DATA INFILE '/tmp/db_name/tbl_name.txt' INTO TABLE tbl_name;

权限要求类似上面所述。倒入数据之前,数据表要已经存在才行。如果担心数据会发生重复,可以增加 REPLACE 关键字来替换已有记录或者用 IGNORE 关键字来忽略他们。

4、 启用二进制日志(binlog)

采用 binlog 的方法相对来说更灵活,省心省力,而且还可以支持增量备份。

启用 binlog 时必须要重启 mysqld。首先,关闭 mysqld,打开 my.cnf,加入以下几行:

server-id	= 1
log-bin		= binlog
log-bin-index	= binlog.index

然后启动 mysqld 就可以了。运行过程中会产生 binlog.000001 以及 binlog.index,前面的文件是 mysqld 记录所有对数据的更新操作,后面的文件则是所有 binlog 的索引,都不能轻易删除。关于 binlog 的信息请查看手册。

需要备份时,可以先执行一下 SQL 语句,让 mysqld 终止对当前 binlog 的写入,就可以把文件直接备份,这样的话就能达到增量备份的目的了:

FLUSH LOGS;

如果是备份复制系统中的从服务器,还应该备份 master.inforelay-log.info 文件。

备份出来的 binlog 文件可以用 MySQL 提供的工具 mysqlbinlog 来查看,如:

/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001

该工具允许你显示指定的数据库下的所有 SQL 语句,并且还可以限定时间范围,相当的方便,详细的请查看手册。

恢复时,可以采用类似以下语句来做到:

/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001 | mysql -uyejr -pyejr db_name

mysqlbinlog 输出的 SQL 语句直接作为输入来执行它。

如果你有空闲的机器,不妨采用这种方式来备份。由于作为 slave 的机器性能要求相对不是那么高,因此成本低,用低成本就能实现增量备份而且还能分担一部分数据查询压力,何乐而不为呢?

5、 直接备份数据文件

相较前几种方法,备份数据文件最为直接、快速、方便,缺点是基本上不能实现增量备份。为了保证数据的一致性,需要在靠背文件前,执行以下 SQL 语句:

FLUSH TABLES WITH READ LOCK;

也就是把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入。这种方法备份出来的数据恢复也很简单,直接拷贝回原来的数据库目录下即可。

注意,对于 Innodb 类型表来说,还需要备份其日志文件,即 ib_logfile* 文件。因为当 Innodb 表损坏时,就可以依靠这些日志文件来恢复。

6、 备份策略

对于中等级别业务量的系统来说,备份策略可以这么定:第一次全量备份,每天一次增量备份,每周再做一次全量备份,如此一直重复。而对于重要的且繁忙 的系统来说,则可能需要每天一次全量备份,每小时一次增量备份,甚至更频繁。为了不影响线上业务,实现在线备份,并且能增量备份,最好的办法就是采用主从 复制机制(replication),在 slave 机器上做备份。

7、 数据维护和灾难恢复

作为一名DBA(我目前还不是,呵呵),最重要的工作内容之一是保证数据表能安全、稳定、高速使用。因此,需要定期维护你的数据表。以下 SQL 语句就很有用:

CHECK TABLE 或 REPAIR TABLE,检查或维护 MyISAM 表
OPTIMIZE TABLE,优化 MyISAM 表
ANALYZE TABLE,分析 MyISAM 表

当然了,上面这些命令起始都可以通过工具 myisamchk 来完成,在这里不作详述。

Innodb 表则可以通过执行以下语句来整理碎片,提高索引速度:

ALTER TABLE tbl_name ENGINE = Innodb;

这其实是一个 NULL 操作,表面上看什么也不做,实际上重新整理碎片了。

通常使用的 MyISAM 表可以用上面提到的恢复方法来完成。如果是索引坏了,可以用 myisamchk 工具来重建索引。而对于 Innodb 表来说,就没这么直接了,因为它把所有的表都保存在一个表空间了。不过 Innodb 有一个检查机制叫 模糊检查点,只要保存了日志文件,就能根据日志文件来修复错误。可以在 my.cnf 文件中,增加以下参数,让 mysqld 在启动时自动检查日志文件:

innodb_force_recovery	= 4

关于该参数的信息请查看手册。

8、 总结

做好数据备份,定只好合适的备份策略,这是一个DBA所做事情的一小部分,万事开头难,就从现在开始吧!

PHP导出Mysql的sql语句

<?php
$host
="localhost";
$user="root";
$password="";
$dbname="dbname";

mysql_connect($host,$user,$password);
mysql_select_db($dbname);

$mysql= “set charset gb2312;\r\n”;#for mysql>=5.0
$q1=mysql_query(“show tables”);
while(
$t=mysql_fetch_array($q1)){
$table=$t[0];
$q2=mysql_query(“show create table `$table`”);
$sql=mysql_fetch_array($q2);
$mysql.=$sql[‘Create Table’].“;\r\n\r\n”;#DDL

$q3=mysql_query(“select * from `$table`”);
while(
$data=mysql_fetch_assoc($q3))
{
$keys=array_keys($data);
$keys=array_map(‘addslashes’,$keys);
$keys=join(‘`,`’,$keys);
$keys=“`”.$keys.“`”;
$vals=array_s($data);
$vals=array_map(‘addslashes’,$vals);
$vals=join(“‘,'”,$vals);
$vals=“‘”.$vals.“‘”;

$mysql.=“insert into `$table`($keys) s($vals);\r\n”;
}
$mysql.=“\r\n”;

}
echo $mysql;#若用记事本打开,粘贴,应该取消‘自动换行’
?>