我已经尝试在Select语句中使用IN参数,如
$sql = "SELECT * FROM msgs WHERE user1 IN ('$var1','$var2') AND user2 IN ('$var1','$var2')";
这是否适用于IF语句以及
if(user1 IN ('$var1','$var2') AND user2 IN ('$var1','$var2')){
如果没有,是否有另一种方法可以在IF声明中实现类似的功能?
msg
表有点像这样:
accid | user1 | user2 | message |
1 mark edward asasdsadsad
2 edward mark asdaqwdksjadhkq
3 mark sherlock sadasdadsad
我想制作一个IF STATEMENT
来确定user1是否为mark / edward AND
user2是mark / edward - 这样我就可以确认两者已经来回发送了消息。通常我可以使用IN
通过SELECT
,但在这种情况下,出于某些原因我必须使用IF
语句。反正有吗?
答案 0 :(得分:1)
IN
运算符是标准的SQL运算符;这在SQL语句中有效。
但那不是PHP运营商。不,PHP if
语句不正确。
这里记录了PHP比较运算符:
http://php.net/manual/en/language.operators.comparison.php
根本不清楚user1
是什么引用。如果它是变量名称,则应在其前面加上美元符号。
PHP中的SQL表达式的等价物如下所示:
if( ( $user1 == $var1 or $user1 == $var2) and ( $user2 == $var1 OR $user2 == $var2 ) ) {
注意:在MySQL中,默认情况下,字符串比较不区分大小写。 (这实际上取决于表达式的排序。)如果我们要比较字符串,要在PHP中进行不区分大小写的比较,我们可以使用strcasecmp
函数代替==
比较运算符。记录在这里:
http://php.net/manual/en/function.strcasecmp.php
正如评论中建议的 u_mulder 一样,如果我们对字符串进行区分大小写比较没问题,并且我们将$var1
和$var2
放入数组中,我们可以使用in_array
函数,在此处记录: