首页 > 解决方案 > 使用 MySQLi 调用 PHP 函数并返回 TRUE 或 FALSE

问题描述

我正在将 PHP 应用程序从 5.5 迁移到 7。以及 mysql_query 到 mysqli_query

其中一个函数用于代码块的授权:但它不适用于 MySQLi_query。使用 mysql_query 函数可以正常工作。有人知道如何解决这个问题吗?TIA。

function IfMemberOfGroup($idgroup){    
$query = "SELECT user_id from member_of_group WHERE user_id = 
'".$_SESSION['user_id']."' AND id_group IN (".$idgroup.")";     

$result = mysqli_query($db,$query) or die();
while ($r = mysqli_fetch_array($result)) {
return true;
}
                                  }

要使用该功能:

if ((IfMemberOfGroup("2"))===true){
//do something
}

标签: phpfunctionmysqli

解决方案


您必须检查是否有记录,然后简单地返回表中是否有这样的记录的member_of_group事实

function IfMemberOfGroup($idgroup)
{    
  global $db;

  $query = "SELECT EXISTS(SELECT 1 from member_of_group 
    WHERE user_id = '".$_SESSION['user_id']."' AND id_group IN (".$idgroup."))";     

  $result = mysqli_query($db,$query) or trigger_error(mysqli_error($db),E_USER_ERROR);
  $is_member = mysqli_fetch_row($result)[0];

  return (bool)$is_member;
}

推荐阅读