在foreach循环内部更新不会超过一次

时间:2017-04-03 16:59:34

标签: php mysql arrays

我遇到了mysql更新查询的问题。 我的代码是:

public function update($idp, $ids){
    $sql = "UPDATE table SET idp = ? WHERE ids = ?";
    $atmt = $this->db->prepare($sql);
    $atmt->bindParam(1, $idp, PDO::PARAM_INT);
    $atmt->bindParam(2, $ids, PDO::PARAM_INT);
    $atmt->execute();
    return 1;
}

我的数据数据是:

 [0]=>
 array(2) {
   ["id_s"]=>
   int(2)
   ["id_p"]=>
   int(111)
 }
 [1]=>
 array(2) {
   ["id_s"]=>
   int(3)
   ["id_p"]=>
   int(175)
 }
 [2]=>
 array(2) {
   ["id_s"]=>
   int(5)
   ["id_p"]=>
   int(25)
 }
 [3]=>
 array(2) {
   ["id_s"]=>
   int(7)
   ["id_p"]=>
   int(127)
 }
 ...

使用数组元素并调用更新方法:

foreach($array as $index => $val){
        $idp = $id[$index]['id_p'];
        $ids = $id[$index]['id_s'];

        $admin->update($idp, $ids);
    }

我想要一张像tihs这样的表:

ids | idp | other column
 1     5      ...
 3     97     ...
 3     97     ...
 4     32     ...
 5     178    ...
 5     178    ...
 5     178    ...

...

然而,对于foreach循环,我只更新第一条记录; 数组对所有值都没问题,看起来参数的绑定不起作用。 有解决方案吗 谢谢!

0 个答案:

没有答案