出于某种原因,我将输入字段作为序列化数据存储到表字段中,现在需要将所有数据从序列化数据转换为纯文本。
我有大约 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/