我准备好的语句的当前语法不正确,其中我:(INSERT ...?,?,?)
我尝试从不同的示例中复制语法,但是似乎我尝试越多,越会破坏登录系统。 我有一些矛盾的示例,并且不确定哪种语法是正确的语法。我需要在插入之前使用$ stmt = $ conn-> prepare吗?
// create preprepared statement
$sql = "INSERT INTO `user` (username, password, email) VALUES (?, ?, ?)";
// check if sql statement is correct
if ($stmt = mysqli_prepare($connection, $sql)) {
// Add the variables to the stmt
mysqli_stmt_bind_param($stmt, "sss", $param_username, $param_hashed_password, $param_email);
$param_username = $username;
$param_password = $hashed_password;
$param_email = $email;
// Attempt to execute the stmt
if(mysqli_stmt_execute($stmt)) {
// If statement executed
$_SESSION["username"] = $username;
header("location: login.php");
目前还没有在我的数据库中插入任何值,并且用户注册失败。
编辑:
$ password = $ _POST ['password'];
$ hashed_password =密码哈希($ password,PASSWORD_DEFAULT);
我刚发现这可能是错误地使用了password_hash吗?
答案 0 :(得分:1)
class FlowerFetcher {
func getFlowers(callback: ([Flowers])->()) {}
}
class FlowerViewModel {
private var flowerService: FlowerFetcher?
init(flowerService: FlowerFetcher?) {}
}
-简而言之,不!但是,您必须使用Do i need to use "$stmt = $conn->prepare" for this prepared statement?
方法来实际生成prepare
,它必须在实际尝试执行prepared statement
之前完成,并且将其分配给变量是明智的,这样您就可以根据成功/失败来分叉程序逻辑。
我的偏好是执行以下操作-使用INSERT
块并在各个阶段使用返回值或变量来确定是否抛出有意义的(?)异常以帮助调试-例如,您可以执行此操作
try/catch