如果我有一个执行PDO语句的循环,是否有办法整理这些执行并在循环之后一次运行它们,或者单独执行每个循环是否正常?我应该同时向MySQL发送多个任务吗?如果是这样,怎么样?
例如,我更新的每一行上一个字段在我的数据库是这样的:
$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中连接;
的查询,所以我猜这是关键,但我不知道如何与预处理语句结合使用。
我知道这不利于这种情况,但只需要“准备”一次。 – Mike
@Mike你的意思是我可以做一个'准备'与多个'执行'持有不同的数据?我不知道,谢谢。我一直把它作为准备执行,之后状态被重置,你需要再次准备。 – Marty
是的,你只需准备一次,然后循环绑定并执行。 – Mike