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

在mysql select语句中使用两个php变量,php,mysql,sql,Php,Mysql,Sql,我不确定我是否以最好的方式实现了这一点,但我尝试在mysql select查询中使用两个php变量作为in子句 "select * from `user` where '$phpvar1' IN ('$phpvar2')" 通常情况下,我会在user表中使用列名,而不是$phpvar1,而且效果很好,但是现在我需要$phpvar1变量在这个特定的select查询中用作临时列。因为$phpvar1在每种情况下都是动态的,所以我不想存储它。我能做什么?谢谢 编辑:为了澄清,$phpvar1不是表中

我不确定我是否以最好的方式实现了这一点,但我尝试在mysql select查询中使用两个php变量作为in子句

"select * from `user` where '$phpvar1' IN ('$phpvar2')"
通常情况下,我会在
user
表中使用列名,而不是$phpvar1,而且效果很好,但是现在我需要$phpvar1变量在这个特定的select查询中用作临时列。因为$phpvar1在每种情况下都是动态的,所以我不想存储它。我能做什么?谢谢

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

基本上我想要它做的是:

SELECT * from `users` where 'mouse' IN ('cat', 'dog') and `userID` = '1'
返回的行应具有userID=1并符合IN子句,因为“mouse”不在('cat,'dog')中,因此在这种情况下不会返回任何行。

将查询重写为:

"SELECT * FROM `users` WHERE '$phpvar1' IN ('".implode("', '", $phpvar2)."') and `userID` = '1'"
假设
$phpvar2
是包含要检查的值的数组。

试试看

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

您的php变量应该在select部分
从用户where x in(“$phpvar2”)中选择$phpvar,otherstuff

您是否执行了查询。?您只是想将PHP变量的值插入MySQL字符串中吗?尝试一下:
“从('$phpvar2')中的`user`where`$phpvar1`中选择*”
。还有,您的
$phpvar2
是如何形成的?我认为您的方法没有任何错误。但在正常情况下,我们使用字段名而不是变量,因为字段名在表中是固定的。正如@vee提到的,您不应该在字段名称周围使用引号。您只想知道列表中是否存在“cat”
$phpvar2
?您可以使用无表查询
在('cat','dog')中选择'cat',
将返回1,
在('cat','dog')中选择'mouse',
将返回0是的,对不起,我刚才注意到:)这不符合我的要求。MySQL将
$phpvar1
视为一个不存在的列。@user1965476好的,我得到了您想要的,但您的方法是错误的。您可以在查询的
select
部分中定义临时字段。你的
零件在哪里?这就像是
“select*,`phpvar1`从`user`where…”
@user1965476也许您只需要以下
从`user`where`$phpvar2`='$phpvar1'
(假设
$phpvar2
是表列,
$phpvar1
是要检查的查询参数,如果没有,那么我需要更多说明)@ArmanP。您可能需要在(“.”中引用字符串
。内爆(“,”,$phpvar2)。“)
无消毒?尖沙咀尖沙咀