我已经尝试在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语句。有这样的事吗?
发布于 2017-06-27 21:39:31
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函数,如本文所述:
https://stackoverflow.com/questions/44790068
复制相似问题