嘿所有,只是一个简单的问题(我认为应该是一个简单的解决方案)。在查询的WHERE语句中,有没有办法在其中包含多个列?这是我的代码:
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and pwd='$pass'";
我想要做的是在WHERE之后添加另一列(称为priv_level ='$ privlevel')。然而,我不确定如何做到这一点的语法。
感谢您的帮助!
答案 0 :(得分:3)
阅读SQL。但无论如何,只需将AND priv_level = '$privlevel'
添加到SQL的末尾即可。
如果您是PHP的新手,这可能是一个非常重要的步骤,但我认为您也应该阅读mysqli
class in PHP。它允许更安全地执行查询。
否则,这是一种更安全的方式:
$sql = "SELECT * FROM $tbl_name WHERE " .
"username = '" . mysql_real_escape_string($myusername) . "' AND " .
"pwd = '" . mysql_real_escape_string($pass) . "' AND " .
"priv_level = '" . mysql_real_escape_string($privlevel) . "'";
答案 1 :(得分:0)
包装易读:
$sql="
SELECT *
FROM $tbl_name
WHERE username='$myusername' and pwd='$pass' and priv_level = '$privlevel'
";
其他人会警告你这个陈述有多危险。 :-)思考SQL injection。
答案 2 :(得分:0)
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and pwd='$pass' and priv_level = '$privlevel'";
如果您不想使用“,请试试这个:
$sql='SELECT * FROM '.$tbl_name.' WHERE username=\''.$myusername.'\' and pwd=\''.$pass.'\' and priv_level=\''.$privlevel.'\'';
答案 3 :(得分:0)
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and pwd='$pass' AND priv_level = '$privlevel'";
旁注:你在这里做的事情是非常糟糕的做法。
答案 4 :(得分:0)
我认为您需要将它(可能与AND一起)添加到WHERE子句中:
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and pwd='$pass' and priv_level = '$privlevel'";
答案 5 :(得分:0)
嗯,你的查询已经在WHERE子句中使用了多个列:)
抛开SQL注入问题(小心):
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and pwd='$pass' and priv_level='$privlevel'";
答案 6 :(得分:0)
WHERE
子句可AND
任意数量的支票,因此您可以轻松拥有三个支票,只需在最后添加and priv_level='$priv_level'
。
编辑:正如@ thorarin的回答提到的,这是建立SQL查询的一种冒险方式,参数绑定会更安全 - 但这与在WHERE
子句中使用两列和三列是正交的。