我在运行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();
}
?>
答案 0 :(得分:0)
使用面向对象的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代替本地主机
答案 1 :(得分:0)
最后找到了解决这个问题的方法,我正在分享它,因为在其他任何地方都找不到解决方法。 $ host应该链接到“ 127.0.0.1”,但是由于未知原因,我的主机只能在“ 127.0.0.1:3307”或末尾的mysql端口名称下工作,请不要忘记以下“:”: ”。附言:尽管阿舒说了什么,但我还是将数据库连接改回了使用过程方式。