使用PHP将数据转换为数据库

时间:2017-05-28 10:37:18

标签: php html mysql forms

我创建了一个HTML表单,使用MySQL和PHP将用户数据插入数据库。

HTML表单:

<form action="index.php" method="POST" >

    <div class="container">

        <label for="username"><b>Username</b></label>
        <input type="text" placeholder="Enter Username" id="username" name="username" required>

        <label for="psw"><b>Password</b></label>
        <input type="password" placeholder="Enter Password" id="psw" name="psw" required>

        <label for="email"><b>Email address</b></label>
        <input type="text" placeholder="Email address" id="email" name="email" required>

        <input type="submit" value="Submit" name="Submit">

    </div>
</form>

的index.php:

// Create connection
   $dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
OR die('Could not connect to MySQL: ' .mysqli_connect_error());

if(isset($_POST['Submit'])) {
    $USER = (isset($_POST['username']) ? $_POST['username'] : null);
    $PASSWORD = (isset($_POST['psw']) ? $_POST['psw'] : null);
    $EMAIL = (isset($_POST['email']) ? $_POST['email'] : null);
    $stmt = $dbc->prepare("INSERT INTO webapp_db.users (username, password, email) VALUES (?, ?, ?)");
    $stmt->bind_param("sss", $USER, $PASSWORD, $EMAIL);
    $stmt->execute();

    echo "New records created successfully";
} else{
    die('Error: '.mysqli_error($dbc));
}
$stmt->close();
$dbc->close();

我没有任何错误。它说:&#34;新记录成功创建&#34;但没有创造任何东西

知道问题出在哪里?提前谢谢

2 个答案:

答案 0 :(得分:1)

尝试将检查包装到isset()语句中,如下所示:

// Create connection
$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die('Could not connect to MySQL: ' .mysqli_connect_error());

if(isset($_POST['Submit'])) {

    $USER = (isset($_POST['username']) ? $_POST['username'] : null);
    $PASSWORD = (isset($_POST['psw']) ? $_POST['psw'] : null);
    $EMAIL = (isset($_POST['email']) ? $_POST['email'] : null);

    $stmt = $dbc->prepare("INSERT INTO webapp_db.users (username, password, email) VALUES (?, ?, ?)");
    $stmt->bind_param("sss", $USER, $PASSWORD, $EMAIL);
    $stmt->execute();

    echo "New records created successfully";
} else{
    die('Error: '.mysqli_error($dbc));
}
$stmt->close();
$dbc->close();

答案 1 :(得分:0)

好的,请记住execute函数返回一个布尔值。尝试检查查询是否成功执行:

$executed = $stmt->execute();

if ($executed == true) { // or just "if ($executed) {" if you prefer
    echo "New records created successfully";
} else {
    echo "Oops! Something went wrong";
}

但如果你需要更精确的东西,...尝试使用errorInfo函数,返回一个数组。

if ($executed == 1) {
    echo "New records created successfully";
} else {
    print_r($stmt->errorInfo());
}