最近在服务器上面源码编译PHP和Apache以及Nginx组合测试,然而发现了一些问题。一般现在虚拟主机提供都是5.2、5.3较为前沿一些的提供5.4。自己编译当然越新越好,其中又一次编译configure的参数直接复制了一份过来,没有加上–with-mysql只加了–with-mysqli,以前从来感觉不出这两个的区别,编译出来跑一个phpinfo就以为OK了。结果放了一个网站上去打开一看一直是空白页,还以为编译失败了,害我花了一个多小时重新编译一次。然后测试phpinfo正常,才想到去看error_log,才发现是mysql_connect未定义,而且说的是已经废弃。这才发现原来php5.5.x会提示已经废弃的mysql_connect。然而到php官网找到如下文档。
ext/mysqli | PDO_MySQL | ext/mysql | |
---|---|---|---|
PHP version introduced | 5.0 | 5.1 | 2.0 |
Included with PHP 5.x | Yes | Yes | Yes |
Development status | Active | Active | Maintenance only |
Lifecycle | Active | Active | Deprecated |
Recommended for new projects | Yes | Yes | No |
OOP Interface | Yes | Yes | No |
Procedural Interface | Yes | No | Yes |
API supports non-blocking, asynchronous queries with mysqlnd | Yes | No | No |
Persistent Connections | Yes | Yes | Yes |
API supports Charsets | Yes | Yes | Yes |
API supports server-side Prepared Statements | Yes | Yes | No |
API supports client-side Prepared Statements | No | Yes | No |
API supports Stored Procedures | Yes | Yes | No |
API supports Multiple Statements | Yes | Most | No |
API supports Transactions | Yes | Yes | No |
Transactions can be controlled with SQL | Yes | Yes | Yes |
Supports all MySQL 5.1+ functionality | Yes | Most | No |