【问题标题】:PHP MySQL connections error - undefined method mysqli [duplicate]PHP MySQL连接错误-未定义的方法mysqli [重复]
【发布时间】:2018-04-14 20:03:51
【问题描述】:

我目前正在尝试制作一个登录系统,它在 xampp 中都能运行,但是当我上传它并将它连接到我的托管数据库时,它只会给我一个错误。

错误是:

PHP Fatal error: Uncaught Error: Call to undefined method mysqli::error() in /path/to/public/gnpfonline/Beta/register.php:19

第 19 行是$result = $mysqli->query("SELECT * FROM users WHERE email='$email'") or die($mysqli->error());。我不太明白有什么问题,因为它在 xampp 中运行良好,但在托管的 SQL 数据库上运行良好,我为此尝试了 2 个不同的站点,但它们都不起作用。

【问题讨论】:

  • 方法mysqli::error()没有定义。这在主机之间可能会有所不同,因为主机之间的 PHP 配置可能会有所不同,并且某些主机可能只是没有 PHP 提供该方法。请联系您的主机技术支持并告诉他们您对 PHP 应用程序的要求是什么(例如该方法)。
  • 另外,也可以是该方法从不存在,但仅在某些主机上执行您的部分代码。这至少是similar Q&A here on SO suggests

标签: php mysql


【解决方案1】:

你的问题是mysqli中没有error()这样的函数。你的代码应该是:

$result = $mysqli->query("SELECT * FROM users WHERE email='$email'") or die($mysqli->error);

...访问$mysqli 对象的错误属性(字符串)。这不是一个函数。

它在您的托管数据库中失败的原因是您在尝试运行查询时实际上遇到了错误。如果你修复了显示错误的代码,你应该会看到真正的错误。

(您的错误处理在本地和远程计算机上都有错误;只是 PHP 从不在本地运行您的错误处理代码,因为本地 $mysqli->query() 没有错误。它只是在远程服务器上失败。 )

部署到不同主机后出错的典型原因是托管数据库的数据库连接配置错误。当您修复错误检查代码时,您将获得更多信息。

【讨论】:

    【解决方案2】:

    mysqli-error 不是函数。

    printf("Errormessage: %s\n", $mysqli->error);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2017-07-27
      相关资源
      最近更新 更多