出现Fatal error: Call to undefined function mysqli_query()错误:
确认是否在php.ini中打开extension=php_mysqli.dll
查看Apache的Error.log,一般是因为libmysql.dll没找到,或者版本不匹配所致。
解决办法:
如果装了mysql的话,把mysql/bin在PATH里的路径往后移。把php自带的libmysql.dll复制一份到apache的bin目录下,再重启apache试试看。php会先找mysql/bin下面的libmysql.dll,如果版本不匹配的话容易出问题。
原理:
除了apache启动目录外,php加载php_mysqli.dll时也会去PATH环境变量定义的路径寻找libmysql.dll,而system32目录恰好在PATH中。安装mysql时会让你选择是否把mysql的bin目录加入PATH,而它自带的libmysql.dll就恰好在这个目录,所以php可能会优先调用这个dll而不是它自带的dll。如果dll版本不兼容,就出问题。
附测试代码:
确认是否在php.ini中打开extension=php_mysqli.dll
查看Apache的Error.log,一般是因为libmysql.dll没找到,或者版本不匹配所致。
解决办法:
如果装了mysql的话,把mysql/bin在PATH里的路径往后移。把php自带的libmysql.dll复制一份到apache的bin目录下,再重启apache试试看。php会先找mysql/bin下面的libmysql.dll,如果版本不匹配的话容易出问题。
原理:
除了apache启动目录外,php加载php_mysqli.dll时也会去PATH环境变量定义的路径寻找libmysql.dll,而system32目录恰好在PATH中。安装mysql时会让你选择是否把mysql的bin目录加入PATH,而它自带的libmysql.dll就恰好在这个目录,所以php可能会优先调用这个dll而不是它自带的dll。如果dll版本不兼容,就出问题。
附测试代码:

添加评论