2

我想以数组的形式将我的 PHP 值存储在 db(mysql) 中...

例如

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

我想将此变量$a以数组形式存储到 db 中,就像它如何使用索引存储在数组中一样。

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

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

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

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

4

4 回答 4

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}

于 2013-09-13T06:52:17.983 回答
2

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

所以,你的记录看起来像

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

这样,您将能够使用常规 SQL 例程对数组值执行更新或删除操作,以及根据数组值选择数据。

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

这里的所有其他答案显然都是错误的

于 2013-09-13T07:01:43.610 回答
-1

我会为此使用序列化/反序列化。你可以像这样使用它:

发送到 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。

问候

黑卓悦

于 2013-09-13T06:58:23.080 回答
-2

您始终可以序列化您的数组,然后将结果存储在VARCHARorTEXT字段中,获取后您可以取消序列化该字段。

于 2013-09-13T06:54:04.690 回答