【问题标题】:How do I configure MySQLi to recognize mysqli commands in PHP?如何配置 MySQLi 以识别 PHP 中的 mysqli 命令?
【发布时间】:2017-06-29 15:45:27
【问题描述】:

目前,我正在尝试测试从一台机器到另一台机器的数据库连接。一台机器上安装了 MySQL,并设置并运行了一个数据库,我想让另一台机器使用 PHP 中的 mysqli 连接到它。两台机器都是 Ubuntu,我使用的是 PHP 5.6。我在我想用来连接数据库的机器上安装了 mysql 客户端,当我尝试使用以下代码连接到 php 中的数据库时:

<?php
    $mysqli = new mysqli('hostname', 'username', 'password', 'dbname');

    if($mysqli->connect_errno) {
            echo "Failed to connect to MySQL database.";
            exit();
    }
?>

它出错,并显示“此页面无法正常工作”错误页面和 HTTP 错误 500。我尝试了以下方法:

sudo apt-get install php-mysqli(收到消息说它已安装并且是标准版本,我认为这是因为我安装了 mysql 客户端)

phpenmod mysqli(这并没有改变任何东西)

我不确定我还应该尝试什么。我相信我已经安装了 PHP 5.6 和 PHP 7.1,这会导致问题吗?您可以推荐哪些步骤来解决和修复 mysqli 无法正常工作的问题?

【问题讨论】:

  • 检查服务器的 error.log 文件。它将为您提供有关问题所在的更多信息

标签: php mysql ubuntu mysqli


【解决方案1】:

首先,我将查看您尝试连接的机器上的错误日志。 500错误应该有一些解释。

其次,我相信你需要在你连接的机器上安装 mysqlnd PHP 扩展。托管数据库的机器就是这样做的。所以,你不必担心在那里安装 PHP。

【讨论】:

  • 我检查了错误日志,我得到了错误:PHP Fatal error: Class 'mysqli' not found in /srv/www/crm/test.php on line 2 关于如何让它找到类的任何想法?我尝试安装 mysqlnd 扩展,出现以下错误:Note, selecting 'php5.6-mysql' instead of 'php5.6-mysqlnd' php5.6-mysql is already the newest version.
  • 我会卸载 php5.6-mysql,然后安装 php5.6-mysqlnd。由于缺少扩展名,mysqli 不存在。
  • 感谢您的回复。不幸的是,当我尝试安装 php5.6-mysqlnd 时,它自动安装了 php5.6-mysql。我做了apt-get purge php5.6-mysql,然后是apt-get install php5.6-mysqlnd,但是在安装过程中,其中一行是:Note, selecting 'php5.6-mysql' instead of 'php5.6-mysqlnd',不幸的是。你知道我怎样才能让它停止自动安装mysql版本吗?
  • 奇怪。我会对此做一些研究。
  • 有趣的是,我重新启动了它,它起作用了。我不确定问题是在哪里解决的,但现在已经解决了,所以很好。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2013-01-03
  • 2023-03-21
  • 2010-11-17
  • 2015-10-31
  • 2013-09-15
  • 1970-01-01
  • 2010-10-20
  • 2010-12-16
相关资源
最近更新 更多