数据库有个列是数组序列化后存到数据库的,取出来得反序列化,
php想要把数组保存到数据库里,有几种序列化方式,分别是:
//php系统序列化
$b = serialize($a); //序列化数组$a,得到字符串$b,存到数据库
$a = unserialize($b); //从数据库取出来,反序列化字符串$b,得到数组$a
//使用json序列化
$b = json_encode($a); //序列化数组$a,生成字符串
$a = json_decode($b); //反序列化字符串$b,生成数组
还有 addslashes()与stripslashes()
默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。这是为了数据库的安全性。一些字符直接存储在数据库中是不安全的,他们是: 单引号 (') 双引号 (") 反斜杠 (\) NULL ************************************************************************************************************** addslashes() 函数在指定的预定义字符前添加反斜杠。这些预定义字符是: 单引号 (') 双引号 (") 反斜杠 (\) NULL ************************************************************************************************************** addslashes() 的例子: "; echo addslashes($str) . " This is safe in a database query."; ?> 输出: Who's John Adams? This is not safe in a database query. Who\'s John Adams? This is safe in a database query. ************************************************************************************************************** stripslashes() 函数是 addslashes() 的反向操作,即:删除由 addslashes() 函数添加的反斜杠。 ************************************************************************************************************** stripslashes() 例子: 输出: Who's John Adams?