У меня есть база данных mySQL, определенная с одной таблицей с большим количеством полей.Обновление одного поля в base64 всей таблицы с PDO
Есть все в одном операторе PDO я мог бы выполнить, чтобы сделать следующее:
Я хочу base64_encode одно поле (поле, называемое cstat) в каждой записи в БД.
Любая помощь будет высоко оценена.
UPDATE:
Благодаря 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();
}
Спасибо за ответ, но он, похоже, не сработал. Я положил его в блок catch try и не сделал никаких ошибок. Также нет ошибок PHP в журнале. Затем я попробовал версию запроса с помощью PhpMyAdmin, и я получаю следующее сообщение об ошибке: # 1305 - ФУНКЦИЯ custdata_db.TO_BASE64 не существует –
Можете ли вы сказать мне версию MySQL вы используете? – TheEwook
Только что проверили с phpinfo(), и он возвращает: \t 5.1.71, а также просто прочитал, что функции base_64 были добавлены в 5.6 –