我有一个mySQL数据库,用一个有很多字段的表定义。
是否有一个多合一的PDO语句,我可以执行以下内容:
我想在数据库中的每条记录中base64_encode一个字段(称为 cstat 的字段)。
任何帮助将不胜感激。
更新:
感谢 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));
}