ホームページ >バックエンド開発 >PHPチュートリアル >データベースのフィールドからのデータ抽出に関する PHP の問題
原来我的网站后台有一张表,是从数据库多个字段里面输出字段的。现在数据库结构换了,几个数据全部融合在一个字段里面。现在就要从一个字段里面读取数据出来,这个应该怎么写代码?我把代码贴出来。
以前的代码:有8个字段分别存放数据。
b6c5a531a458a2e790c1fd6421739d1c757793e73576654508c7dc7ec6a98e53b90dd5946f0946207856a8a37f441edf
b6c5a531a458a2e790c1fd6421739d1c640cdf762fbbbd3a70461be664866771b90dd5946f0946207856a8a37f441edf
b6c5a531a458a2e790c1fd6421739d1cc848c0261da3857779c0e8dec1d5d485b90dd5946f0946207856a8a37f441edf
b6c5a531a458a2e790c1fd6421739d1ce9a251cdfd42ee906c042e135746ab38b90dd5946f0946207856a8a37f441edf
b6c5a531a458a2e790c1fd6421739d1c15ced19fe1dbbf106e9eb7a0f8d8c96cb90dd5946f0946207856a8a37f441edf
b6c5a531a458a2e790c1fd6421739d1c1d46516b3db2c18cbf0f2cadc0509f6cb90dd5946f0946207856a8a37f441edf
?b6c5a531a458a2e790c1fd6421739d1c7f33ef9b31458fa5bc88c02a1e284542b90dd5946f0946207856a8a37f441edf
现在只有一个字段:data,这5个字段的数据全部融合在一个字段里面。请问现在应该怎么写代码输出在前台表格上面?
data字段里面存放的数据类型
a:9:{s:4:" time";i:1405306402;s:4:" name";s:6:"新晨";s:5:" url";s:1:"-";s:4:" word";s:1:"-";s:5:" rpage";s:29:"http://www.baidu.com/test.html";s:5:"cpage";s:1:"-";s:2:"ip";s:15:"117.151.180.150";s:7:" ip_city";s:31:"中国北京市 北京市移动";s:4:"miao";s:1:"5";}
$row = unserialize($row['data']);
$row = unserialize($row['data']);
$row = unserialize($row['data']);
你 print_r($row); 看看就知道了
??使用了序列化,?行一次反序列化即可,但你的??有??
直接使用unserialize?返回false。
$content = 'a:9:{s:4:"time";i:1405306402;s:4:"name";s:6:"新晨";s:5:"url";s:1:"-";s:4:"word";s:1:"-";s:5:"rpage";s:29:"http://www.baidu.com/test.html";s:5:"cpage";s:1:"-";s:2:"ip";s:15:"117.151.180.150";s:7:"ip_city";s:31:"中国北京市 北京市移动";s:4:"miao";s:1:"5";}';var_dump(unserialize($content)); // bool(false)
function mb_unserialize($serial_str) { $serial_str= preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str ); $serial_str= str_replace("\r", "", $serial_str); return unserialize($serial_str);}$content = mb_unserialize($content);//?取timeecho $content['time']; //1405306402
居然?有?分。