Форма регистрации PHP с mysqli не регистрирует нового пользователя - PullRequest
0 голосов
/ 08 октября 2019

У меня есть PHP-файл, который работал раньше, но так как я добавил несколько строк в базу данных, он не будет хранить новые переменные в базе данных. После того, как я заполняю форму и отправляю ее, я получаю сообщение: «signup = success».

Соединение с базой данных работает, все имена, которые должны совпадать между базой данных, файлом PHP и файлом HTML, совпадают.

else {
            $sql = "INSERT INTO users (firstname, lastname, email, phonenumber, gender, birthdate, password) VALUES (?,?,?,?,?,?,?)";
            $stmt = mysqli_stmt_init($conn);
            if(!mysqli_stmt_prepare($stmt, $sql)){
                header("Location: ../index.php?error=sqlerror");
                exit();
            }
            else {
                $hashedPwd = password_hash($password, PASSWORD_DEFAULT);
                mysqli_stmt_bind_param($stmt, "sssisis", $firstname, $lastname, $email, $phonenumber, $gender, $birthdate, $hashedPwd);
                mysqli_stmt_execute($stmt);
                header("Location: ../index.php?signup=success");
                exit();
            }
        }

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Проблема заключалась в том, что дата сохранялась в виде целого числа, в то время как в базе данных у нее был тип столбца даты, и в ней сохранялась строка, а не целое число.

Спасибо за полезные ответы!

0 голосов
/ 08 октября 2019

Попробуйте отобразить промежуточные значения для устранения проблемы

$hashedPwd = password_hash($password, PASSWORD_DEFAULT);
echo mysqli_stmt_bind_param($stmt, "sssisis", $firstname, $lastname, $email, $phonenumber, $gender, $birthdate, $hashedPwd);
echo "<br>\n";
$r = mysqli_stmt_execute($stmt);
echo $r;
echo "<br>\n";
if (!r) { echo mysqli_error($conn) . "<br>\n"; }
echo mysqli_stmt_affected_rows($stmt);

if(mysqli_stmt_affected_rows($stmt) == 1) {
    mysqli_stmt_close($stmt);
    //header("Location: ../index.php?signup=success");
    exit();
}

echo, print_r и fprintf используются для печати значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...