你还在使用mysql_connect()连接MySQL吗?

这篇博客讨论了PHP中连接MySQL的两种新方法:PDO和mysqli,对比了它们与传统mysql_connect()函数的优劣。文章通过压力测试展示了PDO在负载能力上的优势,并提醒读者注意PDO的配置需求和PHP版本限制。作者还提供了学习PDO的建议以及不同连接方式的示例代码。

  接触PHP的人都会知道mysql_connect()这个经典的函数,它是用于连接MySQL数据库的,想必在这里不用介绍太多大家都明白。

  在“改革开放”的今天,你是否还依然使用mysql_connect()呢?

  在PHP5中,新增加了两个连接MySQL的方法,分别是PDO与mysqli。

  对于mysqli,也许好多人听说过或者使用过,用法与mysql类似,或者是用面向对象的方法,传说这个会比mysql_connect的负载能力强。

   对于PDO,不知道了解的人有多少,它是一个完全面向对象的连接方式,更换数据库类型时,也仅仅改很少的部分就可以完成,更主要的是它特别容易让人理 解。也许有些人看到PDO的文档望而止步,也许有些人看到PDO是PHPChina中高级班而不是初级班的教程对它产生恐惧感(当年我也是这样),可是, 如果你真正用到PDO的时候,会感觉到PDO真的是如此的简单。

 

  也许你会说:“只不过是换一种思维、兼容的数据库多一些而已,我已 经对mysql_connect的思维很熟悉了,至于兼容数据库,写几个类就可以的嘛。”PDO的优点并不止这些。你可以放一个 Discuz(Discuz用的mysql_connect连接)局域网的服务器上(或者你的电脑),然后,用压力测试测试一下,两分钟后,访问你安装的 论坛,肯定会报2002错误,因为访问量过大,连不上数据库了。

  PDO的效率在这里不多说,网上炒作的很多,你可以去百度看一下,效率不是主要的,主要是负载量。

   我做过测试,我们公司的一套Web2.0程序,在Linux操作系统,双核CPU,4G内存的服务器,用 mysql_connect连接数据库,做压力测试,load average已经到了80左右(越小越好)。mysql_pconnect和mysqli好像没挂,但是load average也是80左右,这时候,页面基本打不开(关于mysql_pconnect和mysqli的测试好像是这样,记不清了)。而PDO做压力测 试时,页面很慢,但不会报任何错误,load average在20左右。以上测试是同一套程序,同一台机器上测试的(把数据库三种连接方式封装成类,改名,上传,测试)。

  现在,你是不是有迁移PDO的冲动了?不过有些事情你必需要知道的。

   1. PDO虽然有如此多的优点,但是,PDO必需要改配置文件或编译(Linux)来加载它,如果你用的是虚拟主机,在PHPINFO中找不到PDO与 pdo_mysql,那你还是放弃的,如果是自己的服务器,Windows可以改php.ini,打开pdo与pdo_mysql,Linux带上— with-pdo与—with-pdo_mysql来重新编译安装。

  2.如果你用的是PHP4,不想迁移到PHP5的话,也放弃吧,因为PDO只有PHP5才可以使用。

  了解么多,那该怎么学PDO呢?你可以在PHP手册中来学习PDO,真的不是很难,如果你英文水平不是很好,那你就看实例吧,实例讲的很明白。

  最后,给大家附上三个类,分别是mysql/mysqli/pdo连接数据库的方法,调用方法都是一样,如果你会MySQL,你可以对照mysql_connect与pdo两个类文件来看(点击查看效率分析与下载三个类文件)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值