如果我有一个执行 PDO 语句的循环,有没有办法整理这些执行并在循环之后一次性运行它们,或者单独执行每个执行是否正常?
例如,我正在更新数据库中每一行的字段,如下所示:
$pdo = new PDO(/* valid connnection arguments */);
$stmt = $pdo->prepare("SELECT id, username, password FROM users ORDER BY id ASC");
$stmt->execute();
foreach($stmt->fetchAll(PDO::FETCH_CLASS) as $user)
{
$token = sha1($salt . $user->username . $user->password);
$stmt = $pdo->prepare("UPDATE users SET token = :token WHERE id = :id LIMIT 1");
$stmt->execute(array(
":id" => $user->id,
":token" => $token
));
}
但我非常有信心这应该以不同的方式完成,作为对 MySQL 的一个查询。我对 phpMyAdmin 中的连接查询有点熟悉;
,所以我猜这是关键,但我不确定如何结合准备好的语句来做到这一点。