PHP错误“mysqli :: mysqli():(HY000/2002)” [重复]

Posted

技术标签:

【中文标题】PHP错误“mysqli :: mysqli():(HY000/2002)” [重复]【英文标题】:PHP Error "mysqli::mysqli(): (HY000/2002)" [duplicate] 【发布时间】:2019-07-29 02:30:13 【问题描述】:

我在运行 php 代码时遇到问题。该错误仅出现在此 php 文件中,其他简单的也可以正常工作。我正在使用 xampp。 apache 和 mysql 运行绿色。

<?php
  $username = filter_input(INPUT_POST, 'username');
  $password = filter_input(INPUT_POST, 'password');
  if (!empty($username))
    if (!empty($password))
      $host = "localhost";
      $dbusername = "root";
      $dbpassword = "";
      $dbname = "test";
      // Create connection
      $conn = new mysqli ($host, $dbusername, $dbpassword, $dbname);
      if (mysqli_connect_error())
        die('Connect Error ('. mysqli_connect_errno() .') '. mysqli_connect_error());
      
      else
        $sql = "INSERT INTO account (username, password)
        values ('$username','$password')";
        if ($conn->query($sql))
          echo "New record is inserted sucessfully";
        
        else
          echo "Error: ". $sql ." ". $conn->error;
        
        $conn->close();
      
    
    else
      echo "Password should not be empty";
      die();
    
  
  else
    echo "Username should not be empty";
    die();
  
?>

【问题讨论】:

可能你没有连接到你的数据库。 【参考方案1】:

当你使用面向对象的mysqli连接时,你必须使用所有面向对象的方法。

在下面的代码中,您使用了程序方式:

if (mysqli_connect_error)

   die('Connect Error ('. mysqli_connect_errno.') '. mysqli_connect_error);

替换为:

if ($conn->connect_error)

   die('Connect Error ('. $conn->connect_errno.') '. $conn->connect_error);

使用 127.0.0.1 代替 localhost

【讨论】:

错误消失了,但现在得到了这个“致命错误:在第 12 行的 D:\XAMPP\htdocs\example\firstsignupcode.php 中调用未定义的方法 mysqli::connect_error()”。感谢您的帮助 删除函数 () 即。使用 connect_error 代替 connect_error()【参考方案2】:

终于找到了这个问题的解决方案,我分享它,因为我在其他任何地方都找不到解决方案。 $host 应该链接到“127.0.0.1”,但由于未知原因,我的主机仅在它是“127.0.0.1:3307”或您的 mysql 端口名称时才有效,不要忘记“: ”。 PS我将我的数据库连接改回使用程序方式,尽管Ashu说了什么并且它起作用了。

【讨论】:

以上是关于PHP错误“mysqli :: mysqli():(HY000/2002)” [重复]的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:第 306 行的 /var/www/html/central/system/database/drivers/mysqli/mysqli_driver.php 中超过了 30 秒的最大执行时

PHP MySQL 事务捕获错误

[尝试使用mysqli连接到数据库时出现Codeigniter错误

php mysqli mysqli_query() mysqli_real_query()

PHP 更改为 mysqli。 mysqli_connection 不是全局的吗?

PHP的数据库连接mysqli遍历示例