php - Is there a maximum number of SQL UPDATE queries, is it sensible to make them via a loop? -
i need rewrite field in large number of records in 1 of tables.
i'm planning run php loop like
foreach($array $k=>$v) { $sql = "update table set `time`='".$v['time']."' id='".$v['id']."' "; try { $pdo->setattribute(pdo::attr_errmode, pdo::errmode_exception); $stmt = $pdo->prepare($sql); $stmt->execute(); echo $stmt->rowcount(); // 1 } catch(pdoexception $e) { echo 'error: ' . $e->getmessage(); } }
where array has close 300,000 elements.
i have no idea if that's much, or trivial? in danger of crashing server way?
i array slice 50,000 entries @ time, seems bit cumbersome. mysql db.
my server has 2gb of "real" memory, 1.6 of free.
since you're using pdo, why not prepare statement once , execute different parameters on each iteration of loop?
$pdo->setattribute(pdo::attr_errmode, pdo::errmode_exception); $pdo->setattribute(pdo::attr_emulate_prepares, false); $stmt = $pdo->prepare('update table set time=? id=?'); foreach($array $v) { try { $stmt->execute(array($v['time'], $v['id'])); echo $stmt->rowcount(); // 1 } catch(pdoexception $e) { echo 'error: ' . $e->getmessage(); } }
Comments
Post a Comment