PHP 5 不再绑定 MySQL 客户端库,这对我意味着什么?我还能在 PHP 中使用 MySQL 吗?我试着使用 MySQL 结果得到“function undefined”错误,怎么办?
是的。PHP 总是支持 MySQL 的,不是这种方法就是那种方法。在 PHP 5 中唯一的改变就是不再绑定客户端库本身了。部分原因是(无特定顺序):
现今大多数系统已经安装了客户端库了。
由于以上原因,保持多个版本的库文件会导致混乱。例如,如果把 mod_auth_mysql 连接到某个版本,但把 PHP 连接到了另一个版本,然后在 Apache 中同时激活了它们,会得到无数错误。此外,绑定的库文件也不总是能和服务器端的版本很好地配合。对此最明显的症状是上哪里去找 UNIX 域套接字文件 mysql.socket。
维护有些松懈,并且已经越来越落后于发行的版本了。
未来的库版本是基于 GPL 的,因此我们没有升级的途径了,因为我们不能将基于 GPL 的库和 BSD/Apache 风格许可证的项目绑定到一起。因此具有一个干净的 PHP 5 是最好的选择。
****事实上这并不会影响到太多人。UNIX 用户,起码是那些知道自己在做什么的人,往往会在编译 PHP 时通过 --with-mysql=/usr 将其绑定到自己系统中的 libmyqlclient 库上。Windows 用户可以在 php.ini 中激活 php_mysql.dll 扩展库。更多细节见 MySQL 函数中的安装指南。此外,确认 libmysql.dll 在系统路径中。具体怎样做的详情,请阅读 FAQ 中的设定 Windows 系统路径。因为 libmysql.dll(以及很多其它 PHP 有关文件)存放于 PHP 目录中,可能需要将 PHP 目录加入到系统路径中。
****怎样得知我的 php.ini 是否被找到和应用了?似乎我做的修改都没有生效。
要确认你的 php.ini 被 PHP 使用了,调用 phpinfo(),在接近开头的位置有一项叫做 Configuration File (php.ini)。这里将告诉你 PHP 在哪里找到了 php.ini 并且是否使用了。如果只显示一个目录则 没有使用任何 php.ini 文件,你应将你的 php.ini 文件放到该目录中。如果 php.ini 包括在该路径中则它已被应用了。
如果 php.ini 被使用了并且你是以模块方式运行 PHP 的,确保在修改了 php.ini 之后重新启动你的 web server。
****在“变量名”中输入“PHPRC”,在“变量值”中输入 php.ini 文件所在的目录(例如:C:\php)
抄的.自己开个phpinfo慢慢看吧,最有可能是版本和关联错误
mysql_connect()是系统函数。应该是环境没有配对,不知道你的环境是分开搭建的还是安装的集成包,如过是集成包的话,我也不知道是什么原因,如果是分开装的话,建议你重新装一边,配置文件一定要搞好,或者最好装个集成包。我的就是wamp。
首先你要修改php.ini文件,启用MySQL
把extension=php_mysql.dll前面的 ; 去掉,
然后
修改extension_dir所指向的目录,如:
extension_dir = "D:\appserv-win32-2.5.9\appserv\php5\ext"
引号里面的路径下面要能够找到php_mysql.dll 这个文件(也就是php_mysql.dll文件所在的目录),你可以直接把你的服务器的安装的相应路径拷过来就行 ,或者把那个文件拷到某个自定义的路径下,在修改 extension_dir =你的路径 (这种没有试过,前一种绝对能行)
把mysql安装目录里的bin目录下的。libmySQL.dll复制到C盘的system32目录下,然后重启。