php - 需要从数据库字段反序列化数据,以替换为纯文本

标签 php mysql serialization

出于某种原因,我将输入字段作为序列化数据存储到表字段中,现在需要将所有数据从序列化数据转换为纯文本。

我有大约 2000 条记录需要反序列化,然后使用纯文本版本更新。

我尝试了一些不同的方法,但仍然不成功。

有关如何完成更新序列化值并将其值未序列化到表中各自行的任何建议。

最佳答案

首先备份数据库,然后这样的操作应该可以工作:

$query = mysql_query("SELECT `id`, `value` FROM `table`");

while($row = mysql_fetch_assoc($query))
{
    $id = $row['id'];
    $newdata = unserialize($row['value']);

    mysql_query("UPDATE `table` SET `value` = '{$newdata}' WHERE `id` = '{$id}' LIMIT 1");

    if(mysql_affected_rows() <= 0)
    {
        print_r("Update failed on ID {$id}! \n");
    }
}

当然,您必须根据需要(表结构、序列化方法等)对其进行修改。

关于php - 需要从数据库字段反序列化数据,以替换为纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5228372/

相关文章:

java - 序列化:基本理解和文档

php - jQuery Masonry - 流体布局问题

php - 最佳实践 : Upload a picture for non existing Task

php - 通过命令行运行带有 header 命令的 PHP 脚本

mysql - 在mysql中使用 "GROUP BY"选择一些没有聚合函数的列的结果是什么

JAVA使用自定义keycloak的User Storage Provider登录Mysql

javascript - 如何在不使用 POST/GET/FORM 的 onclick 事件 HTML 中设置 PHP session

mysql - Django - 如何对主题内的视频序列进行排序?

c# - 异常 : Maximum number of items that can be serialized or deserialized in an object graph is '65536'

R:负载警告