Php 使用or运算符选择语句
假设我有数据库行Php 使用or运算符选择语句,php,mysql,Php,Mysql,假设我有数据库行设置[id,user,pass,sos] 我有以下mysql语句 $username和$password可以是任何东西 $query = mysql_query ("SELECT * FROM `settings` WHERE user='$username' AND pass='$password'") 我想说 SELECT * FROM `settings` WHERE user='$username' AND pass='$password' or sos=$userna
设置[id,user,pass,sos]
我有以下mysql语句
$username
和$password
可以是任何东西
$query = mysql_query ("SELECT * FROM `settings` WHERE user='$username' AND pass='$password'")
我想说
SELECT * FROM `settings` WHERE user='$username' AND pass='$password' or sos=$username and sos=$password
所以我的问题是如何在select语句中使用或
就像我想说的
user='$username'
pass='$password'
or
sos = both $username and $password
感谢您的帮助您需要使用一些括号来确保正确匹配相关用户名/密码对:
SELECT *
FROM `settings`
WHERE (user='$username' AND pass='$password')
or (sos='$username' and sos='$password')
但是,您确实需要使用参数化查询,因为上面的查询会受到SQL注入攻击。有关如何执行此操作的一些示例,请参见此处:
你可以这样做
SELECT *
FROM `settings`
WHERE (user='$username' AND pass='$password') or (sos='$username' and sos='$password')
你只需要一些附加组。我在第二组中添加了单引号,您最初在其中缺少它们
SELECT *
FROM `settings`
WHERE
(user='$username' AND pass='$password')
OR (sos='$username' AND sos='$password')
使用括号:
SELECT *
FROM `settings`
WHERE
(user='$username' AND pass='$password')
OR
(sos='$username' AND sos='$password')
我想你需要括号
SELECT * FROM `settings` WHERE (user='$username' AND pass='$password') or (sos=$username and sos=$password)
它不是完全像那样工作吗?我会写
WHERE (user = '$username' AND pass = '$password')
OR ('$username' = '$password' AND sos = '$username');
什么是sos?你怎么能让一个文件有两个不同的值呢?这只是一个简单的例子,然后我将把它应用到我的案例中:)~谢谢你的评论