小弟初学php,
WIN7下,在登录phpMyAdmin的时候出现错误:缺少 mysqli 扩展。而在PHP脚本里调用mysqli_connect 的时候会报错:
Fatal error: Call to undefined function mysqli_connect() in xxxx on line xxxx
这种情况应该是找不到扩展吧?可是我已经打开了 extension=php_mysql.dll 和 extension=php_mysqli.dll, 把这两个DLL所在的目录也加入了环境变量,可还是不行。
奇怪的是我在XP下同样的环境就可以运行成功。这是怎么回事呢?请教。
我的环境:操作系统WIN7 旗舰版,PHP Version 5.2.17, Apache 2.0,MYSQL 版本 5.5.29extensionphpphpmyadmin扩展
WIN7下,在登录phpMyAdmin的时候出现错误:缺少 mysqli 扩展。而在PHP脚本里调用mysqli_connect 的时候会报错:
Fatal error: Call to undefined function mysqli_connect() in xxxx on line xxxx
这种情况应该是找不到扩展吧?可是我已经打开了 extension=php_mysql.dll 和 extension=php_mysqli.dll, 把这两个DLL所在的目录也加入了环境变量,可还是不行。
奇怪的是我在XP下同样的环境就可以运行成功。这是怎么回事呢?请教。
我的环境:操作系统WIN7 旗舰版,PHP Version 5.2.17, Apache 2.0,MYSQL 版本 5.5.29extensionphpphpmyadmin扩展
2 重启后phpinfo()函数,查看是否正确加载
如果不行,就拷贝到C:/Windows/System32目录下。
SetEnv PHPRC "路径/PHP5/"
PHPINIDir "路径/PHP5/php.ini"同时也应该在php.ini里面设好扩展的存放路径
这样就不用copy到win目录了
LoadModule php5_module "E:/PHP/php5apache2_2.dll"
PHPIniDir "E:/PHP/"嗯,这个我也知道,我添加了PHPIniDir "E:/PHP/",这个没问题,就不用拷贝php.ini文件了。
但是我添加了LoadFile “E:/PHP/libmysql.dll”后,Apache就不能启动。所以我只能手动地拷贝libmysql.dll到C:/Windows目录。
问题是由于扩展路径设置错误造成的,php.ini中有一行 extension_dir = "./" 改成 extension_dir = "./ext/" 就可以了。当然也可以改成绝对路径(extension_dir = "D:/php/ext/")。
"./" 指的是 D:/php/,而需要加载的 mysqli.dll 是在 D:/php/ext 中,故有此修改。感谢 jakey9826 的回复,调用 phpinfo 是没问题的。可以看到正常加载,问题的原因是扩展路径错误。感谢 ppsharp 的参与,你的回复也让我增进不少。希望我们共同进步。