[英]PHP mysql function always return false on update query
我有下面的函数来返回状态,查询可以更新表,但是它仍然得到状态ACCT_NOT_FOUND
,我已经尝试过$sql->num_rows
或$sql->affected_rows
但是不起作用。
public function user_exit($uid, $mysqli)
{
if(empty($uid)){
return false;
}
$q = "UPDATE `users` SET last_logged_out=now() ";
$q .= "WHERE uid='".$uid."' ";
$sql = $mysqli->query($q);
if($sql->num_rows !== 0){
return true;
}
return false;
}
$exit = $api->user_exit($uid, $mysqli);
if($exit !== FALSE){
$data = array('status'=>'SUCCESS_LOGOUT');
}else{
$data = array('status'=>'ACCT_NOT_FOUND');
}
您应该使用$ mysqli-> affected_rows,因为您要更新的不是num_rows
if($mysqli->affected_rows !== 0){
return true;
}
如下更改功能
public function user_exit($uid, $mysqli)
{
if(empty($uid)){
return false;
}
$q = "UPDATE `users` SET last_logged_out=now() ";
$q .= "WHERE uid='".$uid."' ";
$sql = $mysqli->query($q);
if($mysqli->affected_rows !== 0){
return true;
}
return false;
}
您可以对选择查询使用num_rows方法。
如果您想让受影响的行,您应该尝试受影响的行
阅读有关受影响的行的特定文档http://php.net/manual/en/mysqli.affected-rows.php
if($mysqli->affected_rows != 0){
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.