我如何将通过POST提交的所有信息传递到页面,并将其作为可读数组存储在数据库中
现在我有这个功能:
$mysql = mysql_query("INSERT INTO `table` (`sid`, `contents`) VALUES ('$sid', '$contents')") or die(mysql_error());
if($mysql){
return TRUE;
}else{
return FALSE;
}
当我为$ contents传递$ _POST时,我在数据库中的所有内容都是Array
我需要一些方法来读取帖子值,将它们转换为可读的内容,存储它们,然后能够让它们退出并再次遍历信息
答案 0 :(得分:2)
虽然您可以序列化一个数组并将其存储在MySQL字段中,但我不建议这样做。你不会暴露你想要在你的问题中实现的目标,但我认为你刚刚开始使用MySQL。
我建议的方法是设计一个正确的表,其中的列以您希望存储的值命名,然后创建一个适当的查询来分别存储值,而不是一个大的序列化数组。
这是一个速成课程:http://www.oreillynet.com/pub/a/php/2003/12/23/php_foundations.html
答案 1 :(得分:1)
使用serialize
:
生成可存储的代表 值这对存储或存储很有用 没有传递PHP值 失去他们的类型和结构。
示例:
// turn $_POST into a string that can be reconstructed to its original array form
$postStr = serialize($_POST);
使用unserialize
将字符串恢复为数组:
// give me back my array
$postArr = unserialize($postStr);
确保在插入数据库之前使用mysql_real_escape_string
正确转义字符串。
答案 2 :(得分:1)
您需要序列化http://php.net/manual/en/function.serialize.php,然后存储POST数据。
要获取它,您需要在获取后取消序列化
答案 3 :(得分:1)
+1来纳什。 您想要实现的是反对数据库规范化。你可能认为现在这是一个好主意,但你很快就会感到懊悔。 如果您对数据库级别不满意,可以尝试ORM。