在mysql select语句中使用两个php变量

时间:2014-02-07 03:26:05

标签: php mysql sql

我不确定我是否以最好的方式使用它,但我想要做的是在mysql选择查询中为IN子句使用两个php变量。

"select * from `user` where '$phpvar1' IN ('$phpvar2')"

通常代替$ phpvar1我会在user表中使用列名并且它工作正常,但在我的情况下,现在我需要将$ phpvar1变量用作此特定选择查询中的临时列。因为$ phpvar1在每种情况下都是动态的,所以我不想存储它。我能做什么?谢谢!

编辑:为了澄清,$phpvar1不是表中的列,但我希望它只作为这一个查询的一个列。在这个查询中,我希望$phpvar1等于例如:“cat”,其中“cat”是可以在列中找到的数据,然后这个数据(“cat”)将用于IN子句查看$phpvar2是否包含“cat”

基本上我想要它做的是:

SELECT * from `users` where 'mouse' IN ('cat', 'dog') and `userID` = '1'

返回的行应该有一个userID = 1并且符合IN子句,因为'mouse'不在('cat,'dog')中,在这种情况下不会返回任何行。

3 个答案:

答案 0 :(得分:2)

将您的查询重写为:

"SELECT * FROM `users` WHERE '$phpvar1' IN ('".implode("', '", $phpvar2)."') and `userID` = '1'"

假设$phpvar2是包含要检查的值的数组。

答案 1 :(得分:0)

尝试

 $sql = "select * from `user` where ".$phpvar1." in (".$phpvar2.")";

答案 2 :(得分:0)

你的php变量应该在select部分         从用户中选择$ phpvar,otherstuff,其中x in('$ phpvar2');