我知道它不是保存数据的最佳方式,但数据库是给我的,我不能再改变了,但我需要从base64序列化的列overigedata中获取数据。到目前为止,我想出了这个,但它没有像这样工作。
$result20 = $dbhandle->query("SELECT base64_decode(overigedata) FROM email WHERE 'date' BETWEEN DATE(NOW()) AND DATE(NOW() + INTERVAL 1 DAY) ");
$row_cnt20 = $result20->num_rows;
其中一行的解码输出为:
a:3:{s:15:"HTTP_USER_AGENT";s:108:"Mozilla/5.0 (Windows NT 6.1; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87
Safari/537.36";s:11:"REMOTE_ADDR";s:11:"80.00.00.00";s:4:"DATE";
s:19:"25-04-2016 15:09:35";}
我想解码它并计算日期为今天/一天的行。
答案 0 :(得分:0)
数据存储为序列化格式。
$var ='a:3:{s:15:"HTTP_USER_AGENT";s:108:"Mozilla/5.0 (Windows NT 6.1; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.87
Safari/537.36";s:11:"REMOTE_ADDR";s:11:"80.00.00.00";s:4:"DATE";
s:19:"25-04-2016 15:09:35";}';
$data = unserialize($var);
它将以array()格式返回数据。 在我看来,您的数据存在一些问题。它没有正确序列化。