【发布时间】:2025-12-20 03:20:43
【问题描述】:
我正在尝试使用准备好的语句进行更新,但它不断更新错误的值 (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
我准备好的陈述是否有问题,或者它可能与我的数据库有关? 字段“token”是一个 INT (255) 字段。
【问题讨论】:
-
是的,我有 session_start()。我页面上的会话运行良好.. 只是数据库令牌设置为错误值
-
好的。看起来下面的Sverri's answer 是有道理的。
标签: php mysqli prepared-statement