如何以数组形式在db中存储数据

时间:2013-09-13 06:51:14

标签: php mysql arrays json serialization

我希望以数组...

的形式将我的PHP值存储在db(mysql)中

例如

$a=array{10,20,30,40}; 

我想将这个变量 $ a 以数组形式存储到数据库中,就像它使用索引存储在数组中一样。

为什么我想这样做,因为将来我可能不得不对数组值执行更新或删除操作..

我知道可以做这件事......但我不知道如何实现这个......

我搜索了这个主题,但我没有得到正确答案....

请建议我如何做这件事......

4 个答案:

答案 0 :(得分:2)

为什么不在PHP中使用json_encode并将其存储在数据库中。这是最好的方式。

数组将被转换为字符串并将被存储。 检索数据并使用json_decode,然后根据您的需要开始工作。

示例:

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>
  

输出:

{{a“:1,”b“:2,”c“:3,”d“:4,”e“:5 }

答案 1 :(得分:2)

您应该创建一个不同的 TABLE 来存储此类数据 由2列组成,对应的记录ID和实际数据。

所以,你的记录看起来像是

rid value
1   10
1   20
1   30
1   40
2   10
2   40
...

通过这种方式,您可以使用传统SQL例程对数组值执行更新或删除操作,以及根据数组值选择数据。

这就是现实世界中的事情,而不是PHP沙箱。

这里的所有答案都明显错误

答案 2 :(得分:-1)

我会使用serialize / unserialize。您可以像这样使用它:

发送到MySQL

<?php
    $a = array{10,20,30,40};
    $a = serialize($a);
    // your code here to send it to the mysql
?>

从MySQL获取

<?php
    // your code here to collect it from mysql
    $a = unserialize($mysql->str);
?>

MySQL中的字段应为TEXT或VARCHAR。

此致

BlackBonjour

答案 3 :(得分:-2)

您可以始终serialize您的数组然后将结果存储在VARCHARTEXT字段中,并且在获取后您可以unserialize字段。