[英]Update single field in base64 in whole table with PDO
我有一個帶有多個字段的表定義的mySQL DB。
我可以執行以下所有操作嗎?
我想對數據庫中的每條記錄中的一個字段(稱為cstat)進行base64_encode編碼。
任何幫助將非常感激。
更新:
多虧了TheEwook讓我走上了正確的道路,並進行了進一步的搜索,終於使我像這樣解決了它(我有一個獨特的自動遞增字段,稱為record_id):
$sth = $pdo->query("SELECT * FROM myTable");
$sth->setFetchMode(PDO::FETCH_ASSOC);
while($row = $sth->fetch()) {
$cstat = base64_encode($row['cstat']);
$sql="UPDATE myTable SET cstat = :cstat WHERE record_id = :record_id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':cstat', $cstat, PDO::PARAM_STR);
$stmt->bindParam(':record_id', $row['record_id'], PDO::PARAM_INT);
$stmt->execute();
}
一個簡單的更新查詢就足夠了
$sth = $dbh->prepare('UPDATE myTable SET cstat = TO_BASE64(cstat)');
$sth->execute();
或者,如果您使用的是5.6.1之前的mySQL版本
$sth = $dbh->query("SELECT * FROM myTable");
$sth->setFetchMode(PDO::FETCH_ASSOC);
while($row = $sth->fetch()) {
$cstat = base64_encode($row['cstat']);
$sth2 = $dbh->prepare('UPDATE myTable SET cstat = ?');
$sth2->execute(array($cstat));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.