这是我第一次在这里问问题,所以请耐心等待。
我想测试是否能通过我的.php页面将数据插入到我的MySQL数据库中。虽然我似乎无法连接到我的数据库,即使用户名,密码等都是正确的。当我通过MySQL Workbench登录本地实例时,我使用相同的凭据。
我在浏览器中收到的错误说明了这一点:
连接失败:用户访问被拒绝' root' @' localhost' (使用密码:是)
这也是我第一次编写php代码,因此代码可能会出现错误,请随时指出它们。
这是我的代码:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
function prepareInput($input){
$input = trim($input);
$input = stripslashes($input);
$input = htmlspecialchars($input);
return $input;
}
$servername = "localhost";
$username = "root";
$password = "1234";
$dbname = "praktikdb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//---------------------------------------
$username1 = $password1 = "";
$errUsername = $errPassword = "";
if($_SERVER["REQUEST_METHOD"] == "POST"){
if(empty($_POST["username"])){
$errUsername = "Username is required";
}
else{
$username1 = prepareInput($_POST["username"]);
}
if(empty($_POST["password"])){
$errPassword = "Password is required";
}
else{
$password1 = prepareInput($_POST["password"]);
}
$sql = "INSERT INTO users (username, password) VALUES('$username1', '$password1')";
$result = $conn->query($sql);
if(!$result) die("Something went wrong". $conn->error);
$result->close();
$conn->close();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Registration</title>
</head>
<body>
<form action="login.php" method="post">
Username: <input type="text" name="username">
<span class="error"> <?php echo $errUsername?></span>
<br>
Password: <input type="text" name="password">
<span class="error"> <?php echo $errPassword?></span>
<br>
<input type="submit" name="btnRegister" name="Register"/>
</form>
</body>
</html>
答案 0 :(得分:1)
您的代码为您提供凭据问题(由您的代码的“检查连接”部分检测到),并且这是由MySQL Workbench中的用户配置派生的。您需要配置用于PHP连接的用户,密码以及用户连接的服务器(在本例中为localhost
),以及用户的权限有。
此外,这只是为了连接到您的数据库(现在考虑您不会在您的代码中执行SQL查询),您可以检查连接是否可以只使用您的用户名,密码和服务器名称。
<?php
/* $servername, $username and $password goes here */
$conn = new mysqli($servername, $username, $password);
if($conn->connect_error) {
die("Connection failed:" $conn->connect_error);
}
echo "Connection successful";
?>