gpt4 book ai didi

php - 确定 sql 语句返回 true 还是 false 的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-30 00:53:25 25 4
gpt4 key购买 nike

所以我想做的是通过权限数据库表过滤文件夹中的应用程序,以确定当前用户是否能够访问该应用程序。在此文件的开头,我打印 session ID 以确保其设置并返回我的 ID。但是当我到达 if 语句时,它返回一个值天气或不是我的 sql 语句是真还是假。确定 sql 语句返回 true 或 false 的正确方法是什么?

<?php

Print_r($_SESSION[user_id]);
$matches = glob("Apps/*.php");
if (is_array($matches)) {
foreach ($matches as $filename) {
$filenamesans = basename($filename, ".php"); // $file is set to "index"
include"db.inc.php"; //database connection
$item = "SELECT * FROM Apps WHERE UserID='$_SESSION[user_id]' AND App ='$filenamesans'";
$result = mysql_query($item);
if ($result == TRUE) {
echo "<a class='nav2' href='Apps/$filenamesans/index.php'>$filenamesans</a></br>";
}
}
}
?>

最佳答案

应该注意的是,您正在为循环的每次迭代建立与数据库的连接,而且在循环中进行查询通常是一个坏主意,因为它几乎肯定可以改进。

试试这个:

include("db.inc.php");
$items = mysql_query("SELECT `App` FROM `Apps` WHERE
`UserID`='".mysql_real_escape_string($_SESSION['user_id'])."'");
$itemarr = array();
while($item = mysql_fetch_assoc($items)) $itemarr[$item['App']] = true;

$files = glob("Apps/*.php");
foreach($files as $file) {
$basefile = basename($filename,".php");
if( isset($itemarr[$basefile])) {
echo "<a class='nav2' .......>...</a>";
}
}

这使用单个查询来获取用户的应用程序,然后在数组中查找它们 - 操作速度明显加快。

关于php - 确定 sql 语句返回 true 还是 false 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20782278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com