如果我有一個執行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