doulang6013 2014-11-18 23:11
浏览 20

为每个循环更新a中的多个行

I want to update multiple rows using pdo and update. For some reason it works for a single line update (inserted and overgiven from a html textarea) but not for multiple rows, so I think my bad is somewhere in the foreach loop which should update row by row.

Overgiven from HTML textarea (changeAccountData):

user|pass|region
user1|pass1|region1

My Php part

$accounts = explode(PHP_EOL, $_POST['changeAccountData']);

    $quantity = sizeof($accounts);
    // Batch size, calc iterations
    $batchSize = 500;


    for($idx=0;$idx*$batchSize < $quantity; $idx++){
        $accountsPartial = array_slice($accounts, $idx*$batchSize, $batchSize);

        // Prepare the Query
        $query = "UPDATE EasyService SET password=? WHERE username=? AND region=?";
        // Create the multiple value placeholder
        $stmt = $db->prepare($query);

        $i = 1;
        foreach($accountsPartial as $item){
            list($user, $pass, $region) = explode("|", $item);
            $stmt->bindValue($i++, trim($pass));
            $stmt->bindValue($i++, trim($user));
            $stmt->bindValue($i++, trim(strtoupper($region)));
            $stmt->execute();
        }
    }

I wonder whether I need to use bindValue or bindParam in such cases ? Why does this work for a single account but not for multiple accounts. I echoed all $user, $pass and $region already which was fine.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
    • ¥15 Python报错怎么解决
    • ¥15 simulink如何调用DLL文件
    • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
    • ¥30 线性代数的问题,我真的忘了线代的知识了
    • ¥15 有谁能够把华为matebook e 高通骁龙850刷成安卓系统,或者安装安卓系统
    • ¥188 需要修改一个工具,懂得汇编的人来。
    • ¥15 livecharts wpf piechart 属性
    • ¥20 数学建模,尽量用matlab回答,论文格式
    • ¥15 昨天挂载了一下u盘,然后拔了