错误:
Notice: unserialize() [function.unserialize]: Error at offset 0 of 126 bytes in C:\wamp\www\web_service\client.php on line 224
假
代码1:
$data = array('table'=>'users', 'operation'=>'select', 'uid'=>'yoyo');
$data = serialize($data);
print_r(unserialize($data));
代码2:
$data = array('table'=>'users', 'operation'=>'select', 'uid'=>'yoyo');
$data = base64_encode(serialize($data));
print_r(unserialize(base64_decode($data)));
以上两者都给出了同样的错误。知道为什么吗?
由于
看着这些;
答案 0 :(得分:1)
$data = array('table'=>'users', 'operation'=>'select', 'uid'=>'yoyo');
$data = json_encode($data);
// Use either as array
print_r((array) json_decode($data));
//Or Json
echo $data;
显然是JSON is better解决方案,所以我改用它。感谢您的贡献。
答案 1 :(得分:1)
反序列化的这种问题可能与数据库连接编码有关。
如果使用不同的编码保存了序列化字符串,则unserialize函数的计数器中的字节数将不匹配...