将post信息作为数组存储在mysql中

时间:2009-11-23 09:12:46

标签: php

我如何将通过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 我需要一些方法来读取帖子值,将它们转换为可读的内容,存储它们,然后能够让它们退出并再次遍历信息

4 个答案:

答案 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。