从php页面

时间:2016-06-07 20:47:55

标签: php mysql

编辑:我发现了问题。连接问题位于我重定向到的另一个页面上,其中包含错误的凭据,我是个白痴。

这是我第一次在这里问问题,所以请耐心等待。

我想测试是否能通过我的.php页面将数据插入到我的MySQL数据库中。虽然我似乎无法连接到我的数据库,即使用户名,密码等都是正确的。当我通过My​​SQL 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>

1 个答案:

答案 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";
?>