【问题标题】:PHP won't parse MySQL statementsPHP 不会解析 MySQL 语句
【发布时间】:2010-03-14 10:46:52
【问题描述】:

我刚刚在 Windows Vista 上安装了 Apache 2.2.15/PHP 5.3.2/MySQL 5.1.44。 Apache 运行良好,PHP 正常运行,MySQL 在 CLI 上运行。但是,当我尝试通过 PHP 访问 MySQL 时,出现错误(致命错误:调用未定义函数 mysql_connect())。 extension=php_mysql.dll 和 extension=php_mbstring.dll 在 php.ini 文件中没有注释,PHP 在系统路径中。顶级 PHP 目录或 ext 目录中都没有 libmysql.dll。 MySQL bin 目录中有一个 libmySQL.dll 文件(也在系统路径中);我尝试重命名它,但没有任何作用

另外,如果有人想知道,我最初使用 MSI 安装程序安装 PHP,但它缺少一些 DLL,所以我从 zip 文件安装。

我想我已经用尽了所有的选择。对此问题的任何帮助将不胜感激。

提前致谢。

【问题讨论】:

  • 如果mysql 扩展已实际安装并运行,请检查您的phpinfo
  • 尝试将extension=php_mbstring.dll 移至扩展列表顶部并在任何其他扩展之前加载。它在 PHP 5.2.10 中帮助了我

标签: php mysql database apache dll


【解决方案1】:

IIRC msi 安装程序设置了一些影响 php 配置的注册表值,请参阅http://docs.php.net/configuration.changes#configuration.changes.windows。这可能会改变所使用的 php.ini 的位置。您可能想要删除这些注册表项。无论如何,您确实编辑了 phpinfo() 的输出中显示的文件?

您使用哪个版本的 php?可以从http://windows.php.net/download/下载的那个?那么你可能在 php 核心 dll 中内置了新的mysqlnd transport driver,并且不需要 libmysql.dll。 mysqlnd 驱动程序应该出现在 phpinfo() 的输出中。是吗?

【讨论】:

  • 是的,我有来自该链接的版本 (5.3.2)。 PHP 没有注册表项。 mysqlnd 出现在 phpinfo 页面 (hussain.mooo.com/phpinfo.php)。我使用的ini文件是正确的。此外,php_mysql 和 php_mbstring 是我正在加载的唯一扩展。
  • 这很奇怪,您链接到的 phpinfo() 有一个“mysql”部分Client API version mysqlnd 5.0.7-dev - 091210 - $Revision: 294543 $。你应该很高兴......
  • 不过,我认为问题不在于 mysqlnd。现在的问题是 PHP 找不到 mysql_connect 函数,该函数位于 php_mysql 扩展中。 mysqlnd dll 只提供 php_mysql 和 mysql IIRC 之间的通信层。
  • 但是有一个mysqlnd 一个mysql 部分。我引用的行来自 mysql 部分。 php_mysql 模块(暴露了 mysql_connect())已经被加载了——至少你的 phpinfo.php 页面是这么说的。
  • 嗯,重新启动我的机器后,它现在可以识别该功能,但仍然会抛出错误。关于 mysql 不返回响应或不返回响应的一些事情。 (hussain.mooo.com)
【解决方案2】:

听起来您没有正确安装或配置 PHP 的 MySQL mod。我建议在 Linux 上使用 AMP,很抱歉没有针对 Windows 的任何具体说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    相关资源
    最近更新 更多