Php 为每个循环更新一个循环中的多行
我想使用pdo和update更新多行。出于某种原因,它适用于从html文本区域插入和过度提供的单行更新,但不适用于多行,因此我认为我的缺点是foreach循环中的某个地方应该逐行更新 HTML文本区域changeAccountData的过度给定: 我的Php部分Php 为每个循环更新一个循环中的多行,php,pdo,Php,Pdo,我想使用pdo和update更新多行。出于某种原因,它适用于从html文本区域插入和过度提供的单行更新,但不适用于多行,因此我认为我的缺点是foreach循环中的某个地方应该逐行更新 HTML文本区域changeAccountData的过度给定: 我的Php部分 我想知道在这种情况下是否需要使用bindValue或bindParam?为什么这适用于单个帐户,但不适用于多个帐户。我已经回显了$user、$pass和$region,这很好。我相信这是因为在第二个循环中,$I是4。把$i=1放在你的外
我想知道在这种情况下是否需要使用bindValue或bindParam?为什么这适用于单个帐户,但不适用于多个帐户。我已经回显了$user、$pass和$region,这很好。我相信这是因为在第二个循环中,$I是4。把$i=1放在你的外汇账户的顶部,放在外汇账户的内部,因为你是对的!!谢谢你调查这件事。有时我只需要再多看两眼:而且,我不使用PDO,所以我不确定它如何处理事务,但如果在循环中执行任何操作,它应该在SQL事务中。
user|pass|region
user1|pass1|region1
$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();
}
}