首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MYSQL中读写PHP数组

问在MYSQL中读写PHP数组
EN

Stack Overflow用户
提问于 2012-03-14 08:15:55
回答 2查看 3.1K关注 0票数 3

我希望将PHP varible中的PHP关联数组保存到MYSQL数据库中,然后访问存储的值(在MYSQL数据库中),并在PHP中将其用作关联数组。

代码语言:javascript
复制
$arr = array("abc"=>"ss","aaa"=>"ddd");

现在我想保存

代码语言:javascript
复制
array("abc"=>"ss","aaa"=>"ddd");

并再次希望检索它并将其赋值给variable。

我尝试使用serialize函数,但它只将单词“数组”保存到数据库中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-14 08:20:07

一种方法是在插入之前将其序列化为字符串,然后在获取之后将其反序列化为数组。有不同的方法可以做到这一点,但如果您的数组很简单,JSON是一种可接受的序列化格式。

您可以在进入的过程中使用json_encode:

代码语言:javascript
复制
$str = json_encode($arr);
// Insert $str into db

然后使用json_decode:

代码语言:javascript
复制
// Got $str from db
$arr = json_decode($str);

另一种方法是serialize

代码语言:javascript
复制
$str = serialize($arr);
// Insert $str into db

和unserialize

代码语言:javascript
复制
// Got $str from db
$arr = unserialize($str);

这将为您提供比json_encode和json_decode更多的序列化内容的可能性,但手动检查数据库以查看其中的内容将更加困难。

因此,这两种方法各有优缺点。还有其他的序列化/编组格式。

票数 11
EN

Stack Overflow用户

发布于 2012-03-14 08:32:40

正如Ben所说,您需要在将数组存储到数据库之前序列化数组,然后在读回数组时将其反序列化。如果'Array‘正被写入您的数据库,那么您可能没有将serialize()的结果保存到您正在编写的变量中。

代码语言:javascript
复制
<?php

function store()
{
    $arr = array("abc"=>"ss","aaa"=>"ddd");

    $serialized = serialize($arr);

    // Store $serialized to the database
}

function retrieve()
{
    // Retrieve $serialized from the database

    $arr = unserialize($serialized);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9694173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档