注册表创建2个重复数据行';s和2个空行,每次提交


Registration form creates 2 duplicate data row's and 2 empty rows with every submission

我的网站有这个问题,注册表单提交了2行提交的数据,然后它还在提交的数据下面创建了两个空行。有人能帮我修一下吗?

这是我在从注册表中发布数据后提交数据的代码。

<?php
$dbc = mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die 
('Could not connect to MySQL: ' . mysqli_connect_error() );
$firstname = $_POST['firstname'];
$surname = $_POST['surname'];
$email = $_POST['email'];
$address = $_POST['address'];
$postcode = $_POST['postcode'];
$telephone = $_POST['telephone'];
$username = $_POST['username'];
$password = $_POST['password'];
$q = "INSERT INTO tbl_customers (firstname, surname, email, address, postcode, telephone, username, password)
VALUES ('$firstname', '$surname', '$email', '$address', '$postcode', '$telephone', '$username', '$password')";
$r = mysqli_query ($dbc, $q);
if ($dbc->query($q) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $q . "<br>" . $dbc->error;
}
?>

任何帮助总比没有好。谢谢

正如@Sean所说,您发出了两次查询。。。这里有一个:

$r = mysqli_query ($dbc, $q);

这里再说一遍:

if ($dbc->query($q) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $q . "<br>" . $dbc->error;
}

只要做一个或另一个。就我个人而言,我选择OOP方式,即后者。

现在最重要的是,你应该使用一个准备好的声明:

<?php
$dbc = mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die 
('Could not connect to MySQL: ' . mysqli_connect_error() );
$firstname = $_POST['firstname'];
$surname = $_POST['surname'];
$email = $_POST['email'];
$address = $_POST['address'];
$postcode = $_POST['postcode'];
$telephone = $_POST['telephone'];
$username = $_POST['username'];
$password = $_POST['password'];
$q = "INSERT INTO tbl_customers (firstname, surname, email, address, postcode, telephone, username, password)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $dbc->prepare($q);
$stmt->bind_param('ssssssss', $firstname, $surname, $email, $address, $postcode, $telephone, $username, $password);
$r = $stmt->execute();
if ($r === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $q . "<br>" . $dbc->error;
}