使用的mysqli对象准备语句无法更新数据定向

问题描述 投票:0回答:1

我想这个代码在我的数据库更新标记,但得到这个错误:

通知:未定义变量:stmt_i在C:\上线185 MAMP \ htdocs中\管理员的仪表板\ action.php的

可恢复致命错误:类对象的mysqli不能转换为字符串C:\ MAMP \ htdocs中\ ADMIN的仪表板\ action.php的上线185

 if(count($assoc_array)>0){
                        $token = "qwertyuiopasdfghjklzxcvbnm1234567890jksdhfljdhfajlsdbhkfdajsfhaljsdfhb";
                        $token=str_shuffle($token);
                        $token=substr($token, 0,10);

    //                  echo $token;

                        $stmt_i->$conn->prepare("UPDATE users SET token=?, tokenExpire=DATE_ADD(NOW(), INTERVAL 5 MINUTE) WHERE email=?");
                        $stmt_i->bind_param("ss",$token,$femail);
                        $stmt_i-> execute();
}
php mysql mysqli
1个回答
0
投票

你需要做到以下几点:

  • 设置$femail变量
  • prepare()准备语句,然后将结果以$stmt_i变量。然后,每个参数值绑定并执行你的发言。请注意,这是prepare()mysqli的方法,而bind_param()execute()mysqli_stmt类的方法。 if (count($assoc_array) > 0) { $token = "qwertyuiopasdfghjklzxcvbnm1234567890jksdhfljdhfajlsdbhkfdajsfhaljsdfhb"; $token = str_shuffle($token); $token = substr($token, 0,10); $femail = '[email protected]'; $stmt_i = $conn->prepare("UPDATE users SET token=?, tokenExpire=DATE_ADD(NOW(), INTERVAL 5 MINUTE) WHERE email=?"); $stmt_i->bind_param("ss", $token, $femail); $stmt_i->execute(); } ?>
© www.soinside.com 2019 - 2024. All rights reserved.