用或操作员
问题描述:
让Select语句说,如果我的数据库行settings [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
所以我的问题是如何使用or
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)
答
是否不喜欢这个工作完全?我会写
WHERE (user = '$username' AND pass = '$password')
OR ('$username' = '$password' AND sos = '$username');
什么是sos?你怎么能有一个提出2个不同的价值? – AJP 2012-01-27 19:43:59
这只是一个简单的例子,然后我将它应用于我的情况:)〜感谢您的评论 – 2012-01-27 19:55:17