php - 反序列化来自 mySQL 的值

标签 php mysql

我正在使用分类脚本并将 user_meta 数据保存在 wp_usermeta 表中。 meta_key 字段称为 user_address_info,其中包含如下所有数据:

s:204:"a:7:{s:9:"user_add1";s:10:"my address";s:9:"user_add2";N;s:9:"user_city";s:7:"my city";s:10:"user_state";s:8:"my phone";s:12:"user_country";N;s:15:"user_postalcode";s:10:"comp phone";s:10:"user_phone";N;}";

除了 user_add1、user_city、user_state 和 user_postalcode,我没有使用脚本中的所有字段

我在使用 SQL 获取数据时遇到问题,如下例 (wordpress):

$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A);

我在这里需要一些帮助,以便我可以在任何地方显示(我不介意使用任何类型的 SQL 查询)请求的信息,例如当前作者 ID 的 user_city(例如 25)

我得到了以下示例,但我想要一些动态的东西

<?php
$s = 's:204:"a:7:{s:9:"user_add1";s:10:"my address";s:9:"user_add2";N;s:9:"user_city";s:7:"my city";s:10:"user_state";s:8:"my phone";s:12:"user_country";N;s:15:"user_postalcode";s:10:"comp phone";s:10:"user_phone";N;}"';
$u = unserialize($s);
$u2 = unserialize($u);
foreach ($u2 as $key => $value) {
   echo "<br />$key == $value";
}
?>

非常感谢。

最佳答案

不,你不能使用SQL反序列化。
这就是为什么将序列化数据存储在数据库中一个非常糟糕的主意

两次序列化是糟糕的两倍。

所以,除了使用您提供的代码之外,您什么都没有。
不过,我在其中看不到太多静态信息。
你有遇到任何问题吗?
或者您只是想修复某些东西但不知道要修复什么?然后摆脱序列化

关于php - 反序列化来自 mySQL 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5179376/

相关文章:

php - 创建全局可访问的 MySQLi 对象

php - 用户下载文件后如何显示感谢页面?

php - 如何将多字字符串作为变量传递给php中的url

python - 使用 Airflow 将 mysql 数据加载到 bigquery 的 dag 出现 "Invalid arguments passed"错误

mysql - SQL查询优化,如果第一个为空则按其他行排序

mysql - mysql中每个时间段内的项目数计数器

php - composer create-project 没有安装 Laravel 5.3

php - 如何在wordpress自定义导航中显示子项

php - 在复选框选择上提交表单

mysql - 从 MS Access 连接时截断 MySQL 字段