2

我已经看过这篇文章PHP doesn't see mysql extension,但它没有帮助我。
我用:

  • Windows 7(VM 中的 32 位和真实 PC 中的 64 位)
  • 带有 SSL 的 Apache 2.2
  • PHP 5.3.8
  • mysql 5.5.23

httpd.conf我用 PHP 配置 Apache

PHPIniDir "C:\WEB\PHP\"
LoadModule php5_module "C:\WEB\PHP\php5apache2_2.dll"
ScriptAlias /php "C:/WEB/PHP/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

php.ini我设置

extension_dir = "C:/WEB/PHP/ext/"
[PHP_MYSQL]
extension=php_mysql.dll
[PHP_MYSQLI]
extension=php_mysqli.dll

MySql 已启动并正常工作,但 PHP 看不到 mysql。
我也尝试复制libmysql.dll%windir%\system32重新启动网络服务器,但它没有工作。
如果您需要,我可以发布其他信息。

更新1:
跑步<?php phpinfo(); ?>我只能看到mysqlnd,但mysql也看不到mysqli
如果我跑php -i我会看到

mysql

MySQL Support => enabled
Active Persistent Links => 0
Active Links => 0
Client API version => mysqlnd 5.0.8-dev - 20102224 - $Revision: 310735 $

更新 2:
Apache、PHP 和 MySQL 文件夹与以前的工作电脑相同。
我复制了它们,重新配置了路径,安装并启动了服务:

httpd -k install && httpd -k start
mysqld --install && net start mysql

更新 3:

  • 我可以通过 DOS 控制台使用 mysql
  • 如果我尝试运行现有的 PhpMyAdmin,我会得到The mysql extension is missing. Please check your PHP configuration.

更新4:
我检查了一切php.ini,我的电脑上唯一的就是php文件夹中的那个。

更新5:
我试过这个代码:

<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL);
mysql_connect();
?>

我得到Fatal error: Call to undefined function mysql_connect() in C:\var\www\Apache\test.php on line 4

4

3 回答 3

3

我已经修复了相同的问题,将以下路径添加到 Windows 的环境变量“路径”(系统 > 高级 > 环境变量 > 路径):

c:\Program Files\PHP5;C:\Program Files\MySQL\MySQL Server 5.5\lib

第一个是 php.ini 所在的位置,第二个(最重要的!)是 libmysql.dll 所在的位置(通常在 mysql 安装目录内的“lib”目录中)

这个操作在 PHP.net 页面http://php.net/manual/en/mysqli.installation.php中有很好的描述

现在它起作用了。

于 2012-09-16T12:01:50.130 回答
1

您需要将 php.ini 文件中的extension=php_mysql.dllextension=php_mysqli.dll行向上移动。它们应该具有所有通用设置。

据我所知,没有 and 部分php_mysqlphp_mysqli它只是mysqland mysqli,但那些只包含这些模块的特定设置。在读取这些设置之前加载实际的扩展。

于 2012-04-27T21:37:12.300 回答
0

我现在看到的最可行和最省时的选择是重新安装 WAMP 本身,并将旧文件和 dbs 迁移到新文件。

于 2012-04-27T21:34:00.007 回答