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 秒的最大执行时
[尝试使用mysqli连接到数据库时出现Codeigniter错误
php mysqli mysqli_query() mysqli_real_query()