PHP PDO语句不会向数据库

时间:2017-12-04 21:50:30

标签: php sql pdo insert

我几个小时都在努力。我绝对不知道为什么它不会将我的信息发送到我的数据库...我之前使用过相同的策略并且它运行得非常出色。现在它无论如何都不会INSERT。请帮忙!

if ($validForm) {

    try {
        $stmt = $conn->prepare('INSERT INTO credentials (firstname, lastname, username, password) VALUES (:fname, :lname, :username, :password)');
        $stmt->bindValue(':fname',$firstname);
        $stmt->bindValue(':lname',$lastname);
        $stmt->bindValue(':username',$username);
        $stmt->bindValue(':password',$password);
        $passwordHash = password_hash($password, PASSWORD_BCRYPT, array("cost" => 12));
        $stmt->bindValue(':password',$passwordHash);
        $stmt->execute();
    } catch(PDOException $e) {
        echo $e->getMessage();
    }
?>

<p class="success-message">Thank You. Your Form Has Been Submitted.</p>

<?php
}

enter image description here

2 个答案:

答案 0 :(得分:1)

您的密码列设置为什么数据类型,排序规则和长度?

在屏幕截图中,所有密码都是短文本字符串,但如果我将哈希代码应用于第一个密码,则结果为:

$2y$12$S7tIbSxqNNhn/Z7AyA8ewuq09IE/psFyVL5udLUNgmP4Q7vTd/qFO

你的桌子会接受吗?

答案 1 :(得分:0)

我认为你应该是其中之一:

$stmt->bindValue(':password',$passwordHash);

或者

$stmt->bindValue(':password',$password);