在where子句中是否有选择all的迹象?我有一个where子句,它基于一个基于登录的变量。 我的问题是我希望在某个用户登录时选择所有内容。
$前缀基于用户是动态的。
("SELECT * FROM tabell WHERE prefix= '$prefix'");
答案 0 :(得分:0)
假设您在会话$_SESSION['user']
中拥有待定用户,请尝试以下操作:
$where = (isset($_SESSION['user']) && $_SESSION['user']=='certain-user') ? '':"WHERE prefix= '$prefix'";
$sql ="SELECT * FROM tabell $where";
答案 1 :(得分:0)
因此,根据我们在评论部分中的讨论,我试着为您提供有关如何解决此问题的一些想法。
我认为您可以做的最好的事情之一是创建一个数组,其中应该应用异常的所有用户。这就是为什么我问你是否有办法从数据库中获取所有这些用户。那本来是完美的。但由于它似乎不是这样,我认为你必须手动维护阵列。
类似的东西:
$usersToCheck = array("Username1", "Username2", "Username3", "Username4");
等等......
然后,在查询数据库时,请执行以下操作:
if (in_array($_SESSION["username"], $usersToCheck)) {
$query = "SELECT * FROM table1";
}
else {
$query = "SELECT * FROM table1 WHERE prefix = :prefix";
}
我认为这是实现您想要的最简单方法之一。如果有可能维护你想要从数据库中放入数组的用户,你甚至可以用PHP生成这个数组,你不必手动完成。
解决方案2:
你说:“检测用户不是probs,它是通过会话完成的。”
我不确定你的意思。但是如果有类似$_SESSION["isSpecialUser"]
标志的东西,那么只需将这个用于if / else条件,如:
if($_SESSION["isSpecialUser"] == 1) {
$query = "SELECT * FROM table1";
}
else {
$query = "SLEECT * FROM tabl1 WHERE prefix = :prefix";
}
我希望它对你有所帮助。如果您有任何疑问,请随时询问:)