0

我不明白为什么这段代码不起作用。我收到此错误:

警告: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);
4

1 回答 1

-1

您的绑定参数缺少最后一个字符串参数。即使它是相同的 var,您也必须再次列出它。

$statement->bind_param('sss', $passwordHashSalt, $random_sal, {$otherVarName})

编辑:现在您实际上已修复您的帖子确保您解决了您的变量名称:

$sqlStatement != $语句

于 2013-11-09T21:03:05.040 回答