Fatal error: Call to undefined function mysql_connect() in……

在自定义配置PHP+Mysql时,如果没有配置成功,在连接Mysql时会报错:


Fatal error: Call to undefined function mysql_connect() inC:\myenv\apache\htdocs\test.php on line2



搭建过程参看Blog:

http://blog.csdn.net/php1923880282/article/details/8581505


我实在Windows2003环境中


遇到这样的问题,不要盲目地去网上搜索各种解决方案来尝试

因为各个环境都是很复杂的,导致这个错误的原因也都不尽相同,最后能试的你头晕脑花都解决不了


我们要找到自己的问题的根源,对症下药,这样解决了问题后方能增强我们对这个环境的理解

这不正是我们自己“找麻烦”来自定义搭建环境的初衷吗?

如果一知半解,还不如直接去用泰国Appserv 或者WAMP呢


首先,PHP要想处理Mysql,我们知道在PHP方面要做的是


启用mysql功能,在php.ini中
extension=php_mysql.dll
extension=php_mysqli.dll

开启后请重启 Apache服务,再测试

如果还是不行

那就说明在Apache加载Httpd.conf 的过程中没有加载成功php.ini 中的这2句话

不信去看,phpinfo( )

搜索一下Mysql字眼,除了mysqlld 的项目,根本找不到 mysql  和 mysqli 这两个东东


原因有两方面:

1,php.ini 中 extension_dir 没有配置

2,php.ini 没有正常加载


解决第一个问题只需要如下图操作:


第二个问题我们从 phpinfo( ) 中就可以看出


因此我们要确保的是:

在 httpd.conf 中

LoadModule php5_module C:/myenv/php/php5apache2_2.dll
PHPIniDir "C:/myenv/php"
AddType application/x-httpd-php .php .phtml

小结一下:

1,确保在php.ini 中加载了 2个 DLL

2,确保在php.ini 中配置了正确的 extension_dir = "C:/myenv/php/ext/"  这个路径是 ./php/ext 

3,确保在 httpd.conf 中配置了正确的 PHPIniDir "C:/myenv/php"  这个路径 ./php




如果小结2中,配置成了  C:/myenv/php/

则在 重启动 Apache的会报错并且无法成功加载2个DLL:

Fatal error: Call to undefined function mysql_connect() in……_第1张图片


如果小结3中,配置成了 C:/myenv/php/ext  (这样就不会报找不到 php_mysql.dll模块 的错误)

那么整个 php.ini 都无法加载到,具体可看本文中phpinfo( )的那张图片中 批注。



关于网上各种解决方法,这里也作一个汇总仅供参考,但是我真心没有用下面的任何一条来解决问题,应该是环境不一样吧:


1、把 ../mysql/bin/libmySQL.dll  拷贝到 php 下面,还有拷贝到 php/ext 目录下

2、将 libmySQL.dll  php5ts.dll 两个文件拷贝到  windows/system32 下

3、将 php根目录下面的 php.ini拷贝到 windows目录下,(前提是php.ini必须是配置好的)

4、说需要把libMysql.dll文件拷贝到c:\windows\system32下面,如果在系统环境变量里设置好path的话,就不需要这步操作了。



你可能感兴趣的:(Fatal error: Call to undefined function mysql_connect() in……)