爆炸然后foreach数据不一样(php错误?)

时间:2014-11-10 12:52:21

标签: php arrays explode

我有2个字符串:

$data1 = "8,11,";
$data2 = "2,3,";

我这样做:

$stuff = explode(",", $data1, -1);
$amount = explode(",", $data2, -1);

所以像这样的数组:

$stuff have an Array ( [0] => 8 [1] => 11 ) 
$amount have an Array ( [0] => 2 [1] => 3 )

然后像这样做:

foreach($stuff as $index => $value){

    $query= "SELECT * FROM products WHERE id = ?";
    $STH2 = $DBH->prepare($query);
    $STH2->execute(array($value['0']));

    while($Products_all = $STH2->fetch()){
and so on....
.......

我想要做的是打印产品ID 8和ID 11.事实上,它获得了产品ID 8和id 1.我的代码出了什么问题?为什么产品ID 1不是11? 谢谢。

其他问题:为什么必须改为" $ value" ?

3 个答案:

答案 0 :(得分:1)

替换

 $STH2->execute(array($value['0']));

 $STH2->execute(array($value));

答案 1 :(得分:0)

您只在SQL查询中添加了值($value[0])的第一个字符,而不是完整值。

$STH2->execute(array($value));

第二件事是,为什么在一个查询的FOR循环中使用查询?

SELECT ...
FROM ...
WHERE id IN (8, 11)

答案 2 :(得分:0)

哦,sry改变这一行:

$STH2->execute(array($value['0']));

$STH2->execute(array($value));