【问题标题】:PHP - Help me fetch values from this serialize values array in my DBPHP - 帮助我从我的数据库中的这个序列化值数组中获取值
【发布时间】:2016-04-22 16:58:13
【问题描述】:

这是我尝试使用 PHP 获取时数据库中的序列化值

$mylink = $wpdb->get_row( "SELECT * FROM wp_hlsq_signups WHERE user_email = 'john.r3@domain.com'" );
$metaData= $mylink->meta;
echo "<pre> $metaData</pre>";

这是输出:

a:6:{
s:10:"first_name";s:4:"John";s:9:"last_name";s:6:"Ratina";s:9:"user_pass";s:34:"$P$B3EtpszNVkYJseassseaa2$swas";s:10:"user_email";s:14:"john.r3@domain.com";s:10:"user_login";s:6:"john-r";s:4:"role";s:10:"subscriber";
}

我只想在php中显示first_namelast_nameJohn Ratina,怎么可能?

【问题讨论】:

  • 您的数据未正确序列化。它格式不正确。你一开始是怎么序列化的?例如。 s:8:"John" John 没有 8 字符。以此类推。
  • 我问对了,可能是字符串没有正确地处理问题
  • 正确,我不知道 s:8 是什么,名字有 8 个字符,我只是将那个 8 个字符的名字改成 John 只是为了隐藏我的名字。

标签: php mysql arrays serialization


【解决方案1】:
$metaData= $mylink->meta;
$valData= unserialize($metaData);
echo $valData['first_name'];

【讨论】:

  • 这行得通吗?因为根据您的序列化数据,它应该返回如下通知:Notice: unserialize(): Error at offset x
  • 虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,纯代码的答案没有用处。
猜你喜欢
  • 2015-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-24
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
相关资源
最近更新 更多