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 说了并且它有效。
我有一个问题 运行 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 说了并且它有效。