【发布时间】:2020-10-20 01:12:37
【问题描述】:
我不断收到错误
警告:mysqli_stmt_bind_param():类型定义字符串中的元素数与绑定变量数不匹配
$sql = "INSERT INTO users (usersName, usersEmail, usersUid, usersPwd) VALUES (?, ?, ?, ?);";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("location: ../signup.php?error=stmtfailed");
exit();
}
$hashedPwd = password_hash($pwd, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($stmt, "sssss", $name, $email, $username, $pwd, $hashedPwd);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
header("loctaion: ../signup.php?error=none");
}
【问题讨论】:
-
我从来没有看到你分配给
$name、$email、$username或$pwd,这让我想知道你是如何得到$hashedPwd的,但尽管如此,我们没有看到变量赋值。 -
您将 5 个变量分配给 4 个占位符。我认为您需要从那里删除
$pwd。 -
@Dharman for the code present the error 我相信应该不同,“没有为准备好的语句提供数据”。清楚地表示代码与错误消息不匹配