Php 在查询中使用mysql绑定_param,只接受列表中的第一个值
我正在使用MySQL和PHP 我尝试使用bind_param参数化查询。现在我需要将一个整数列表传递给查询中的参数化 我尝试了以下查询:Php 在查询中使用mysql绑定_param,只接受列表中的第一个值,php,mysql,mysqli,parameterization,Php,Mysql,Mysqli,Parameterization,我正在使用MySQL和PHP 我尝试使用bind_param参数化查询。现在我需要将一个整数列表传递给查询中的参数化 我尝试了以下查询: select id,date, sum(value) as distance , (select number from table2 where id=id) as Number from Table1 where id in (1777,1778,1779) 但它只返回列表1777中第一个值的结果 如何获得列表中所有条目177717781779的
select id,date,
sum(value) as distance ,
(select number from table2 where id=id) as Number
from Table1 where id in (1777,1778,1779)
但它只返回列表1777中第一个值的结果
如何获得列表中所有条目177717781779的结果?您需要使用GROUP BY,例如
希望这有帮助 id=id的位置是什么?这也是一个占位符吗?不,是在选择之后立即提到的id。在参数化查询中,我使用了placeholder。等效的参数化查询是:选择id、date、sumvalue作为距离,从表2中选择number,其中id=id作为表1中id所在的number;您可能需要考虑使用连接而不是子查询。请使用一些表别名。id=id不明确。。。对于我们和MySQL引擎都是如此。另一个问题是无法参数化IN条件的值列表。一个参数对应一个值。我知道,当你想要一个可变长度的值列表时,它可以是一个PITA,但这就是参数的工作方式。我们通过这个得到了结果。但是当使用bind_param时,我们没有得到第一个id1777的结果,例如:$a='177717781779'$sqlobj->bind_参数'i',$a;当我们尝试这样做时,得到的结果仅为1777,您不能对整个值列表使用一个参数。您必须使用如下查询。。。在里面并绑定3个参数。
SELECT
id,
date,
sum(value) as distance ,
(SELECT number FROM table2 WHERE id=id) as Number
FROM Table1
WHERE
id in (1777,1778,1779)
GROUP BY id