<?php
$connection=new PDO("mysql:host=localhost;dbname=userdata", "secure_credentials", "battery_staple");
$user=$_POST['username1'];
$pass=$_POST['password1'];
$snip=mb_substr($user, 0, 3);
$pass=password_hash($pass, PASSWORD_BCRYPT);
$user_query=$connection->prepare("INSERT INTO login (email, password, semod, snippet) VALUES (:email, :password, :semod, :snippet)");
$user_query->bindParam(':email', $user);
$user_query->bindParam(':password', $pass);
$user_query->bindParam(':semod', "false");
$user_query->bindParam(':snippet', $snip);
$user_query->execute;
(密码已更改)
我在上面的 PHP 代码中遇到了一个小问题,每当它被执行时,我都会收到这个错误:
致命错误:无法通过[location]行中的引用传递参数 2 [##:我缩短了上面的代码...这是有问题的密码字段]
环顾四周,在不使用变量的情况下直接传递字符串/整数时,这似乎是一个问题。但是,password_hash()
返回一个字符串,所以我被引导相信它没有返回一个字符串。这个问题可能是什么问题?