PHP中WHERE之后的多列?

时间:2009-06-10 15:11:41

标签: php mysql where

嘿所有,只是一个简单的问题(我认为应该是一个简单的解决方案)。在查询的WHERE语句中,有没有办法在其中包含多个列?这是我的代码:

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and pwd='$pass'";

我想要做的是在WHERE之后添加另一列(称为priv_level ='$ privlevel')。然而,我不确定如何做到这一点的语法。

感谢您的帮助!

7 个答案:

答案 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子句中使用两列和三列是正交的。