PHP PDO语句不会向数据库提交信息

PHP PDO语句不会向数据库提交信息,php,sql,pdo,insert,Php,Sql,Pdo,Insert,我已经为此工作了好几个小时了。我完全不知道为什么它不会将我的信息发送到我的数据库。。。我以前也用过同样的战术,效果很好。现在,无论发生什么,它都不会插入。请帮忙 if ($validForm) { try { $stmt = $conn->prepare('INSERT INTO credentials (firstname, lastname, username, password) VALUES (:fname, :lname, :username, :pas

我已经为此工作了好几个小时了。我完全不知道为什么它不会将我的信息发送到我的数据库。。。我以前也用过同样的战术,效果很好。现在,无论发生什么,它都不会插入。请帮忙

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
}
if($validForm){
试一试{
$stmt=$conn->prepare('INSERT-INTO-credentials(firstname,lastname,username,password)值(:fname,:lname,:username,:password)');
$stmt->bindValue(':fname',$firstname);
$stmt->bindValue(':lname',$lastname);
$stmt->bindValue(':username',$username);
$stmt->bindValue(':password',$password);
$passwordHash=password\u hash($password,password\u BCRYPT,数组(“cost”=>12));
$stmt->bindValue(':password',$passwordHash);
$stmt->execute();
}捕获(PDO$e){
echo$e->getMessage();
}
?>

谢谢。您的表格已经提交


我认为你应该选择其中之一:

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


密码列设置为什么数据类型、排序规则和长度

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

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


您的表会接受吗?

$stmt->bindValue(':password',$password);--您已经使用了它2次。显示数据库结构和错误请在执行了什么操作后,在代码顶部写入ini_集('display_errors',1)““仍然不工作”?用户id没有任何自动增量:(.可能您发送的是空值,但数据库字段parametr不是空的。您应该检查错误,否则将很难解决问题。这将是一个很好的注释,但不是真正的答案(好吧,但无论如何)伙计们,我开始工作了!我很好奇密码散列是如何工作的…比如它将密码注册到数据库中,但是当你真正尝试使用登录页面登录时它是如何工作的?比如它是如何读取实际密码的?我对PHP非常陌生哈哈。。。
$stmt->bindValue(':password',$password);