小弟初学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扩展

解决方案 »

  1.   

    1 修改php.ini后要重启apache
    2 重启后phpinfo()函数,查看是否正确加载
      

  2.   

    我也遇到了这个问题,我昨天解决了。把libmysql.dll和php.ini两个文件拷贝到C:/Windows目录下,
    如果不行,就拷贝到C:/Windows/System32目录下。
      

  3.   

    拷贝过去再重启Apache。应该行的,我昨天也是这个问题搞了我一天,晚上12点才搞定,我也是初学PHP。
      

  4.   

    这样的情况你应该在apache http.conf 写上
    SetEnv PHPRC "路径/PHP5/"
    PHPINIDir "路径/PHP5/php.ini"同时也应该在php.ini里面设好扩展的存放路径
    这样就不用copy到win目录了
      

  5.   


    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目录。
      

  6.   

    感谢 snmr_com 的回复,我用你的方法解决了问题。
    问题是由于扩展路径设置错误造成的,php.ini中有一行 extension_dir = "./" 改成 extension_dir = "./ext/" 就可以了。当然也可以改成绝对路径(extension_dir = "D:/php/ext/")。
    "./" 指的是 D:/php/,而需要加载的 mysqli.dll 是在 D:/php/ext 中,故有此修改。感谢 jakey9826 的回复,调用 phpinfo 是没问题的。可以看到正常加载,问题的原因是扩展路径错误。感谢 ppsharp 的参与,你的回复也让我增进不少。希望我们共同进步。