php - 使用 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
}
解决方案
您必须检查是否有记录,然后简单地返回表中是否有这样的记录的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;
}
推荐阅读
- python - 如何在循环中使用 continue 语句?
- javascript - 如何导入已安装的 npm 模块以在我的 html 文件中使用它们
- javascript - Javascript/jquery 下载图片
- flutter - Initilizer 中只能访问一个静态成员
- linux - chmod 递归,但排除起始目录
- vaticle-typedb - 使用 grakn / graql 在知识图中插入属性的属性
- selenium - MacOS Automator 不适用于 chromedriver selenium?
- html - 如何用一个元素创建 3D 透视图像?
- javascript - ?为什么有多个promise,它们各自的then不是没有粘在一起而是交织在一起的?
- bash - 语法错误意外的令牌 bash 脚本