这个问题是在Windows下配置PHP+Apache+Mysql环境时发生的。
具体的表现是php运行正常,但是PHP调用MySql的相关函数就出错,Apache就会进行日志报错。
环境配置方式:
php以模块的方式运行在Apache下。自定义php.ini路径
phpinfo()显示mysql库加载成功
出错后在Windows的错误日志中会留下以下内容:
错误应用程序httpd.exe,版本2.2.21.0,错误模块php5ts.dll,版本5.2.17.17,错误地址0x0000acca。
原因如下:
在安装MySql的时候在配置设定时把MySql的Bin目录放到了系统环境变量Path中。而Bin目录中正好有一个libmysql.dll的库。
而php在加载mysql库的时候会搜索系统环境变量Path每一个目录寻找libmysql.dll,由于mysql的bin目录也在其中,那么php就先把mysql的libmysql.dll加载了。所以就会由于库的兼容问题导致mysql的函数无法运行。
解决方案:
1.将mysql的bin目录从系统环境变量Path中移出或将libmysql.dll从MySql的bin目录中移出,或将libmysql.dll进行重命名。
2.重起系统,测试正常。