我正在尝试使用准备好的语句进行更新,但它不断更新错误的值(2147483647)。我不知道这个值是从哪里来的。这是我的代码:
$myID = 5;
$loginTokenNew = time() * rand(3, 33) * $myID;
$_SESSION['loginToken'] = $loginTokenNew;
$mysqli = connectToDB();
$stmt = $mysqli->prepare('UPDATE users SET token=? WHERE id=?') or die('Couldn\'t update user token');
$stmt->bind_param('ii', $loginTokenNew, $myID);
$stmt->execute();
$stmt->close();
$mysqli->close();
奇怪的是会话变量取正确的值,但数据库中的“令牌字段”一直取值:2147483647
我准备好的陈述是否以某种方式错误,或者它可能与我的数据库有关?字段“令牌”是一个INT(255)字段顺便说一句。