PHP 错误 "mysqli::mysqli(): (HY000/2002)"

PHP Error "mysqli::mysqli(): (HY000/2002)"

我有一个问题 运行 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();
  }
?>

当您使用面向对象的 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 而不是本地主机

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