我不明白为什么这段代码不起作用。我收到这个错误:
警告:mysqli_stmt :: bind_param():变量数与预准备语句中的参数数量不匹配。
我见过几个例子。根据例子它应该有用。
$password = generatePassword();
$passwordHash = hash('sha512', $password);
$random_salt = hash('sha512', uniqid(mt_rand(1, mt_getrandmax()), true));
$passwordHashSalt = hash('sha512', $passwordHash . $random_salt);
$sqlStatement = $mysqli->prepare('UPDATE members (password, salt) VALUES (?, ?) WHERE username = ?');
$statement->bind_param('sss', $passwordHashSalt, $random_salt, $username);
答案 0 :(得分:-1)
你的绑定参数缺少最后一个字符串参数。即使它是相同的var,你也必须再次列出它。
$statement->bind_param('sss', $passwordHashSalt, $random_sal, {$otherVarName})
编辑: 现在你确实修了你的帖子 确保解决var名称:
$ sqlStatement!= $ statement