我在这段代码中得到一个错误(代码中的注释):
if (checkBd ($sql, $db, $valor, $codePass)){
($sql = $db->prepare("UPDATE users SET activation = ? WHERE activationLink=?"));
$valor="1";
$sql->bind_param('is', $valor, $codePass);
$sql->execute();
$sql->bind_result($valor, $codePass); //Warning: mysqli_stmt::bind_result() [mysqli-stmt.bind-result]: Number of bind variables doesn't match number of fields in prepared statement
if ($sql->fetch()) {
header("location: index.php");
return true;
}
else {
echo "no";
return false;
}
$sql->close();
$db->close();
}脚本中可能存在的问题是什么?另一个问题是,这种更新布尔值的方式正确吗?
谢谢
发布于 2011-03-23 10:00:38
我无法从更新查询中检索结果。
已解决
if (checkBd ($sql, $db, $codePass)){
$valor=1;
($sql = $db->prepare("UPDATE users SET activation=? WHERE activationLink=?"));
$sql->bind_param('is', $valor, $codePass);
$sql->execute();
header("location: index.php");
return true;
}
else {
echo "no";
return false;
}
$sql->close();
$db->close();发布于 2011-03-23 07:54:31
删除变量两边的引号,因为它们是不需要的。
如果$valor总是=1,您可能希望将其作为整数传递。
$sql->bind_param('is', $valor, $codePass);https://stackoverflow.com/questions/5399089
复制相似问题