[英]PHP Using mysql query with multiple OR
好的,我没有发现任何可以帮助我解决此问题的方法
$hvorerjeg = $db->query("SELECT *
FROM `ts`
WHERE `aktiv` = '1'
AND `player1` = '$obj->id'
OR `player2` = '$obj->id'
OR `player3` = '$obj->id'
OR `player4` = '$obj->id'");
//Checks if user is player1 or player2 or player3 or player4
我想检查用户是否是player1,player2,player3或player4的代码,但这对我来说不起作用,我现在在某个地方找了一个半小时的答案,但我无法解决。 抱歉,如果这是一件很容易的事,但我对php很陌生
在SQL中,AND运算符的优先级高于OR运算符。
$hvorerjeg = $db->query("SELECT * FROM `ts` WHERE `aktiv` = '1'
AND (
`player1` = '$obj->id' OR
`player2` = '$obj->id' OR
`player3` = '$obj->id' OR
`player4` = '$obj->id')
");
作为附带说明,此代码容易受到sql注入的攻击。 请使用准备好的语句来使您的代码更安全。
尝试对OR进行分组,因为如果1返回true,则其分组将返回true。
$hvorerjeg = $db->query(
"SELECT * FROM `ts` WHERE
`aktiv` = '1' AND
(
`player1` = '$obj->id' OR
`player2` = '$obj->id' OR
`player3` = '$obj->id' OR
`player4` = '$obj->id'
)"
);
尝试这个:
$hvorerjeg = $db->query("SELECT *
FROM `ts`
WHERE aktiv = '1'
AND (player1 = '" . $obj->id . "'" .
" OR player2 = '" . $obj->id . "'" .
" OR player3 = '" . $obj->id . "'" .
" OR player4 = '" . $obj->id . "')");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.