-
mysql存储php数组_mysql数据库存储PHP数组、对象的方法
2021-01-19 05:59:25之前开发项目时遇到了一个难点,就是如何把多维数组数据存入mysql数据库中,因为mysql数据库是不支持数组存储的,所以当时我的方法是通过容易拆分的标识符,比如@或者&这些,可能用户输入时很少用到的特殊字符,...之前开发项目时遇到了一个难点,就是如何把多维数组数据存入mysql数据库中,因为mysql数据库是不支持数组存储的,所以当时我的方法是通过容易拆分的标识符,比如@或者&这些,可能用户输入时很少用到的特殊字符,然后通过 impload() 函数将他们组合起来,等到取出时再用 expload() 函数将他们拆分,一维数组用一个标识符、组合一次、取出时拆分一次,二维数据用两个标识符、组合两次、取出时拆分两次,以此类推,让人都觉得繁琐。
但现实总是山重水复疑无路,柳暗花明又一村,一次偶然的机会,发现了一个函数serialize()序列化和他的相对函数unserialize()反序列化。
查一下手册,函数描述是serialize()返回字符串,此字符串包含了表示value的字节流,可以存储于任何地方。
重点是返回字符串,因为MySQL是可以存储字符串类型的。那么我们开始动手吧!
首先找一个数组来:
$a = array(
‘aa’ => 11,
‘bb’ => 22,
‘cc’ => array(
‘aaa’ => 111,
‘bbb’ => 222,
‘ccc’ => 333,
),
‘dd’ =>44
);
echo ‘
‘;
var_dump($a);
echo ‘
‘;?>
输出如下
可以了,一个二维数组写好了,然后我们就要开始使用serialize()了,怎么用,我们再看下手册
只有一个参数,那么传值进去就可以直接用了,返回的是一个string类型的值。
$b = serialize($a);
echo “
“;
var_dump($b);
echo ‘
‘;添加如上代码,保存,刷新。
输出如下:
咦,这不是json格式吗?
那么我们用json_encode()呢?
那么我们一起来试试看:
$c = json_encode($a);
echo “
“;
var_dump($c);
echo ‘
‘;输入如上的代码,看看输出什么。区别还很大呢!这个我的观点是serialize()比json_encode()更严谨,还原度更高,因为他记录了字段长度和数据类型,接下来看还原:首先是unserialize()这个函数:$d = unserialize($b);
echo “
“;
var_dump($d);
echo ‘
‘;看输出:真的和原来一模一样;那么看json_decode()了:$e = json_decode($c);
echo “
“;
var_dump($e);
echo ‘
‘;输出是:
居然是个对象!
看了下手册发现json_decode()函数还有第二个参数,输入true可以输出数组:
那么我们把代码改成:
$e = json_decode($c,true);
echo “
“;
var_dump($e);
echo ‘
‘;继续测试:
恩,这下输出就对了。
两种方法的输出完全一样,从结果分析的话,两种方法都是可用的。从存储来说显然用json_encode()更省空间。至于函数的效率这个,我就不得而知了。
但是serialize()因为记录了字段长度和数据类型,所以会更严谨一些,如果需要严格的数据类型要求,请使用serialize(),如果没有这方面的需求,可以用json_encode()。
希望大家能找到适合自己的方法,希望这些知识能帮助那些和我一样曾经迷茫的萌新。
-
mysql 保存float数组_数据库存储float数组
2021-01-18 23:00:51{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行数据压测演练,...{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行数据压测演练,提供数据库优化方面专业建议,在业务高峰期与用户共同保障数据库系统平稳运行。","link1":"https://www.aliyun.com/service/optimization/database","link":"https://www.aliyun.com/service/chiefexpert/database","icon":"https://img.alicdn.com/tfs/TB1a5ZfonnI8KJjy0FfXXcdoVXa-100-100.png","btn2":"数据库紧急救援服务","tip":"还有更多专家帮助您解决云上业务问题:立即查看","btn1":"云上数据库优化服务","link2":"https://www.aliyun.com/service/databaserescue","title":"数据库专家服务"}],"search":[{"txt":"安全首席专家","link":"https://www.aliyun.com/service/chiefexpert/security"},{"txt":"中间件首席专家","link":"https://www.aliyun.com/service/chiefexpert/middleware"},{"txt":"系统与平台首席专家","link":"https://www.aliyun.com/service/chiefexpert/platform"},{"txt":"存储首席专家","link":"https://www.aliyun.com/service/chiefexpert/storage"}],"countinfo":{"search":{"length_pc":0,"length":0},"card":{"length_pc":0,"length":0}},"simplifiedDisplay":"newEdition","newCard":[{"link":"https://www.aliyun.com/product/rds/mysql","icon":"rds_mysql1","contentLink":"https://www.aliyun.com/product/rds/mysql","title":"云数据库RDS MySQL版","des":"云数据库RDS MySQL版 MySQL 是全球最受欢迎的开源数据库,阿里云MySQL版 通过深度的内核优化和独享实例提供稳定极致的数据库性能,同时灵活的部署架构及产品形态,可满足不同场景下的数据库需求。","btn1":"了解详情","link1":"https://www.aliyun.com/product/rds/mysql","btn2":"管理控制台","link2":"https://rdsnext.console.aliyun.com/#/rdsList/cn-hangzhou/basic/","btn3":"在线咨询","link3":"https://www.aliyun.com/core/online-consult?spm=5176.8789780.7y9jhqsfz.115.47ea55caeL2Mfu&from=OVtXEBmlH8","infoGroup":[{"infoName":"最新活动","infoContent":{"firstContentName":"MySQL 1年仅19.9元","firstContentLink":"https://www.aliyun.com/database/dbfirstbuy#J_9036464270","lastContentName":"ECS+MySQL 0.7元/日","lastContentLink":"https://www.aliyun.com/1111/enterprise"}},{"infoName":"快速入门","infoContent":{"firstContentName":"选型指南","firstContentLink":"https://help.aliyun.com/document_detail/164594.html?spm=a2c4g.11186623.6.551.56b67384ispvvk","lastContentName":"上手指南","lastContentLink":"https://help.aliyun.com/document_detail/26124.html?spm=a2c4g.11174283.2.16.51795b83pbkzav"}},{"infoName":"最佳实践","infoContent":{"firstContentName":"X-Engine的应用场景","firstContentLink":"https://help.aliyun.com/document_detail/148402.html?spm=a2c4g.11186623.2.14.3f592685zjuUxu#concept-2364901","lastContentName":"读写分离功能","lastContentLink":"https://help.aliyun.com/document_detail/96073.html?spm=a2c4g.11174283.2.53.42db5b83VvZvMJ"}},{"infoName":"产品推荐","infoContent":{"firstContentName":"云数据库PolarDB","lastContentName":"云原生数据仓库MySQL","firstContentLink":"https://www.aliyun.com/product/polardb","lastContentLink":"https://www.aliyun.com/product/ads"}}]}],"visual":{"textColor":"dark","topbg":""}}
{"$env":{"JSON":{}},"$page":{"env":"production"},"$context":{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行数据压测演练,提供数据库优化方面专业建议,在业务高峰期与用户共同保障数据库系统平稳运行。","link1":"https://www.aliyun.com/service/optimization/database","link":"https://www.aliyun.com/service/chiefexpert/database","icon":"https://img.alicdn.com/tfs/TB1a5ZfonnI8KJjy0FfXXcdoVXa-100-100.png","btn2":"数据库紧急救援服务","tip":"还有更多专家帮助您解决云上业务问题:立即查看","btn1":"云上数据库优化服务","link2":"https://www.aliyun.com/service/databaserescue","title":"数据库专家服务"}],"search":[{"txt":"安全首席专家","link":"https://www.aliyun.com/service/chiefexpert/security"},{"txt":"中间件首席专家","link":"https://www.aliyun.com/service/chiefexpert/middleware"},{"txt":"系统与平台首席专家","link":"https://www.aliyun.com/service/chiefexpert/platform"},{"txt":"存储首席专家","link":"https://www.aliyun.com/service/chiefexpert/storage"}],"countinfo":{"search":{"length_pc":0,"length":0},"card":{"length_pc":0,"length":0}},"simplifiedDisplay":"newEdition","newCard":[{"link":"https://www.aliyun.com/product/rds/mysql","icon":"rds_mysql1","contentLink":"https://www.aliyun.com/product/rds/mysql","title":"云数据库RDS MySQL版","des":"云数据库RDS MySQL版 MySQL 是全球最受欢迎的开源数据库,阿里云MySQL版 通过深度的内核优化和独享实例提供稳定极致的数据库性能,同时灵活的部署架构及产品形态,可满足不同场景下的数据库需求。","btn1":"了解详情","link1":"https://www.aliyun.com/product/rds/mysql","btn2":"管理控制台","link2":"https://rdsnext.console.aliyun.com/#/rdsList/cn-hangzhou/basic/","btn3":"在线咨询","link3":"https://www.aliyun.com/core/online-consult?spm=5176.8789780.7y9jhqsfz.115.47ea55caeL2Mfu&from=OVtXEBmlH8","infoGroup":[{"infoName":"最新活动","infoContent":{"firstContentName":"MySQL 1年仅19.9元","firstContentLink":"https://www.aliyun.com/database/dbfirstbuy#J_9036464270","lastContentName":"ECS+MySQL 0.7元/日","lastContentLink":"https://www.aliyun.com/1111/enterprise"}},{"infoName":"快速入门","infoContent":{"firstContentName":"选型指南","firstContentLink":"https://help.aliyun.com/document_detail/164594.html?spm=a2c4g.11186623.6.551.56b67384ispvvk","lastContentName":"上手指南","lastContentLink":"https://help.aliyun.com/document_detail/26124.html?spm=a2c4g.11174283.2.16.51795b83pbkzav"}},{"infoName":"最佳实践","infoContent":{"firstContentName":"X-Engine的应用场景","firstContentLink":"https://help.aliyun.com/document_detail/148402.html?spm=a2c4g.11186623.2.14.3f592685zjuUxu#concept-2364901","lastContentName":"读写分离功能","lastContentLink":"https://help.aliyun.com/document_detail/96073.html?spm=a2c4g.11174283.2.53.42db5b83VvZvMJ"}},{"infoName":"产品推荐","infoContent":{"firstContentName":"云数据库PolarDB","lastContentName":"云原生数据仓库MySQL","firstContentLink":"https://www.aliyun.com/product/polardb","lastContentLink":"https://www.aliyun.com/product/ads"}}]}],"visual":{"textColor":"dark","topbg":""}}}
-
mysql数据库存储PHP数组、对象的方法
2016-10-14 10:13:45之前开发项目时遇到了一个难点,就是如何把多维数组数据存入mysql数据库中,因为mysql数据库是不支持数组存储的,所以当时我的方法是通过容易拆分的标识符,比如@或者&这些,可能用户输入时很少用到的特殊字符,然后...之前开发项目时遇到了一个难点,就是如何把多维数组数据存入mysql数据库中,因为mysql数据库是不支持数组存储的,所以当时我的方法是通过容易拆分的标识符,比如@或者&这些,可能用户输入时很少用到的特殊字符,然后通过 impload() 函数将他们组合起来,等到取出时再用 expload() 函数将他们拆分,一维数组用一个标识符、组合一次、取出时拆分一次,二维数据用两个标识符、组合两次、取出时拆分两次,以此类推,让人都觉得繁琐。
但现实总是山重水复疑无路,柳暗花明又一村,一次偶然的机会,发现了一个函数 serialize() 序列化 和他的相对函数 unserialize() 反序列化。
查一下手册,函数描述是serialize() 返回字符串,此字符串包含了表示
value
的字节流,可以存储于任何地方。重点是返回字符串,因为MySQL是可以存储字符串类型的。那么我们开始动手吧!
首先找一个数组来:
<?php $a = array( 'aa' => 11, 'bb' => 22, 'cc' => array( 'aaa' => 111, 'bbb' => 222, 'ccc' => 333, ), 'dd' =>44 ); echo '<pre>'; var_dump($a); echo '</pre>'; ?>
输出如下
可以了,一个二维数组写好了,然后我们就要开始使用serialize()了,怎么用,我们再看下手册
只有一个参数,那么传值进去就可以直接用了,返回的是一个string类型的值。
$b = serialize($a); echo "<pre>"; var_dump($b); echo '</pre>';
添加如上代码,保存,刷新。
输出如下:
咦,这不是json格式吗?
那么我们用json_encode()呢?
那么我们一起来试试看:
$c = json_encode($a); echo "<pre>"; var_dump($c); echo '</pre>';
输入如上的代码,看看输出什么。区别还很大呢!
这个我的观点是serialize()比json_encode()更严谨,还原度更高,因为他记录了字段长度和数据类型,接下来看还原:
首先是unserialize()这个函数:
$d = unserialize($b); echo "<pre>"; var_dump($d); echo '</pre>';
看输出:真的和原来一模一样;
那么看json_decode()了:
$e = json_decode($c); echo "<pre>"; var_dump($e); echo '</pre>';
输出是:
居然是个对象!
看了下手册发现json_decode()函数还有第二个参数,输入true可以输出数组:
那么我们把代码改成:
$e = json_decode($c,true); echo "<pre>"; var_dump($e); echo '</pre>';
继续测试:
恩,这下输出就对了。
两种方法的输出完全一样,从结果分析的话,两种方法都是可用的。从存储来说显然用json_encode()更省空间。至于函数的效率这个,我就不得而知了。
但是serialize()因为记录了字段长度和数据类型,所以会更严谨一些,如果需要严格的数据类型要求,请使用serialize(),如果没有这方面的需求,可以用json_encode()。
希望大家能找到适合自己的方法,希望这些知识能帮助那些和我一样曾经迷茫的萌新。
-
mysql是否存储数组_mysql – 在数据库中存储数组是否可接受?
2021-01-21 17:16:21我一直在开发一个应用程序,我遇到了一个我想拍摄当前数据快照的情况.例如,在此应用程序中,用户将具有不同的统计数据并能够输入匹配项.他们在比赛中的位置取...我认为存储一个像这样结构的数组是可以接受的:array(a...我一直在开发一个应用程序,我遇到了一个我想拍摄当前数据快照的情况.
例如,在此应用程序中,用户将具有不同的统计数据并能够输入匹配项.他们在比赛中的位置取决于他们的统计数据.当确定匹配时,应用程序将提取用户当前的所有统计数据并确定他们的分数以查看谁获胜.
现在比赛结束后,我希望用户能够查看过去的比赛,当我想要显示比赛时参赛者点数时,问题就出现了.我认为存储一个像这样结构的数组是可以接受的:
array(
array(username, points),
array(username, points),
etc.
)
现在规范化数据可能是最佳做法,但在这种情况下:
>比赛中可以有2到25名参赛者.
>数据永远不会更新,只能读取.
>我认为在数据库中的数组结构中使用它将节省我在后端代码中构建数组的时间.
>编辑:数据不是永久性的.比赛记录将在比赛结束后7天删除.
谁能告诉我这个解决方案是否会提供任何问题?
编辑
我会在序列化数组后保存数据,所以在我的数据库中我会有一个名为’matches’的表,它会有一个名为’results’的列.
此列的行将包含序列化数组.所以如果数组看起来如此:
$array["a"] = "Foo";
$array["b"] = "Bar";
$array["c"] = "Baz";
$array["d"] = "Wom";
然后数据库中的行将如下所示:
a:4:{s:1:"a";s:3:"Foo";s:1:"b";s:3:"Bar";s:1:"c";s:3:"Baz";s:1:"d";s:3:"Wom";}
-
mysql 存数组类型的数据_在mysql(5.6)数据库中存储json数组的数据类型
2021-03-14 16:58:56我应该使用什么数据类型来存储MySQL版本5.6中的json编码数组,其中json数据类型不可用?到目前为止,我正在考虑将其存储为TEXT或VARCHAR.是我们如何存储它?解决方法:它取决于您要存储的JSON数据的长度.如果它不是太长... -
android数据库的存储上限_android 数据库存储数组
2020-12-18 23:46:59{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行数据压测演练,... -
iOS数据库存储数组或字典等数据
2016-01-22 11:35:00NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error: ...取出的数据则为空 转载于:https://www.cnblogs.com/yuhaojishuboke/p/5155851.html -
vue如何把数组转为json数组_实战中vue如何向后端数据库存取json数组型数据
2020-12-20 11:19:12最近在为医院做一套简单的PEIS体检系统,在录入费用的时候,一条费用一条数据总感觉很麻烦,数据多了直接看数据库也比较混乱,我经常直接看数据库,于是改成json的格式来存储费用相关的数据,[{"id":1},{"id":2}]... -
mysql 存储多维数据库_sql – 在数据库中存储多维数组:关系或多维?
2021-03-14 16:07:30The goal is to retrieve an element with PHP by name and all its descendants.如果这是您需要的,您可以使用LIKE搜索SELECT *FROM Table1...如果您的数据看起来不像这样,您可以创建一个路径列,它看起来像目录路径,... -
Android SQLite数据库提取并存储到数组
2016-08-15 06:28:32现在数据库已经创建成功,并且能够存储数据了,但是从数据库提取数据的时候,就无法运行,请大神指教 ``` private SaveDatabaseHelper dbHelper; ArrayList<String> dataList = new ArrayList(); ... dbHelper ... -
byte用json存 c++_实战中vue如何向后端数据库存取json数组型数据
2020-12-30 06:28:02最近在为医院做一套简单的PEIS体检系统,在录入费用的时候,一条费用一条数据总感觉很麻烦,数据多了直接看数据库也比较混乱,我经常直接看数据库,于是改成json的格式来存储费用相关的数据,[{"id":1},{"id":2}]... -
微信小程序云数据库对于嵌套数组对象的试探2021-03-26
2021-03-26 11:55:50云数据库不支持数组嵌套的操作,但支持数据和对象嵌套: https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/query-array-object.html 注意事项: 不支持用在数组嵌套数组 匹配... -
从数据库读取字节数组的问题。
2015-08-05 03:45:251.为什么取出来的字节数组长度为0,而我数据库里面明明有数据,SQL语句又没有问题。 2.怎么解决这个问题。 我的部分代码如下图。  -
关于“Asp.net 中后台CS读取数据库数据生成数组传递给前台页面JS使用”
2012-05-30 16:12:15最近,由于项目需要需要将传感器的地理位置信息标记在百度地图上,无线传感器节点能够将自身经纬度信息,通过网络传递到数据库存储起来,然后将其读出来并在百度地图在地图上标记显示出来. 首先,在后台CS需要将... -
python静态数据存储_将静态数据存储在数组中还是数据库中?
2021-01-30 05:50:56这是我们的第一个方案, 我们可以存储在数据库表中.那么这里会出现一个问题, 就是类似于上例中requirement这样比较复杂的数据结构该如何存储呢?当然,你会说, 这难不倒我, 我们可以使用序列化后的对象, 如python中的... -
Python数组存入mysql_Python在mysql数据库中插入数组元素
2021-02-04 03:25:58我正在处理图像并转换成大约400个数据值。我希望这些值都存储在列中。我的mysql表有如下列:MYID, WIDTH, HEIGHT,P1,P2,P3.....P400.因为我可以很容易地将这些文件写入到一个csv文件中,而不是直接将这些文件写入到... -
sdb:基于简单和快速字符串的键值数据库,支持数组和json-源码
2021-02-05 00:55:40sdb是基于djb的cdb磁盘存储的简单字符串键/值数据库,并支持JSON和数组自省。 mcsdbd是具有基于sdb的磁盘存储的内存缓存服务器。 它以独立的二进制文件和库的形式分发。 还有sdbtypes:一个vala库,它在sdb或... -
如何将数据库中的数据存储在数组中以供进一步使用
2014-03-06 23:51:29<p>I am doing a database and i fetch my data like this: <pre><code>if ($db_found) { $SQL = "SELECT mat.nome AS nome FROM materiali AS mat JOIN campo_di_utilizzo_materiali AS cum ON cum.id_... -
从mysql数据库中读取数据_并保存到数组_从数据库中读取数据并存储在数组列表对象中...
2021-03-07 14:22:18小编典典尝试以下代码public static ArrayList getAllCustomer() throws ClassNotFoundException, SQLException {Connection conn=DBConnection.getDBConnection().getConnection();Statement stm;... -
ASP.net中的数据库得到数据表全部记录并存储在数组中
2017-12-01 11:38:10在ASP中SSS可以得到数据表的全部记录,然后将记录存储在 DSX 数组中,在界面将可以调用数组DSX的值。 那么在ASP.net中怎么得到这个全部记录数SSS,并且怎么存储在数组 DSX 中,希望得到高手的帮助。 希望能够比较... -
mysql 存储过程 数组 变量_mysql 存储过程 数组变量
2021-01-19 04:33:40{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行数据压测演练,... -
从数据库里读取数据后存储在数组然后用带分页的列表显示出来(如何对数组分页显示)...
2013-10-10 10:29:42从数据库读取数据存储到数组每个人都会,分页不是网上的累或者啥方法,公司之前的人写的,我拿来改了改,希望对大家有帮助。(重点是:如何对数组分页显示) php最牛的地方就是他的数组结构能够完成复杂的多维的... -
this.$emit 传输正在循环的数组_实战中vue如何向后端数据库存取json数组型数据
2021-02-03 15:58:52最近在为医院做一套简单的PEIS体检系统,在录入费用的时候,一条费用一条数据总感觉很麻烦,数据多了直接看数据库也比较混乱,我经常直接看数据库,于是改成json的格式来存储费用相关的数据,[{"id":1},{"id":2}]... -
mongo更新数组字段_云开发 存储、数组、对象
2021-01-08 14:22:33在云数据库入门章节我们所涉及到的数据库里数据类型还非常简单,在这一章里我们会来介绍如何操作数据库的数组和对象等复杂数据类型的增删改查。云存储与数据库的关系不经过数据库直接把文件上传到... -
PHP 数据库中某个字段存储的数据是数组数据时,怎样获取并解析
2017-09-06 15:21:39当数据库中某字段存储的数据是 数组数据的时候 array ( 0 => array ( 'name' => 'xxx', '13fds' => '123123', 'dfsa' => '4444', 'fdsa' => 'Completed', 'fdsa' => 0, 'fdsa' => 12321, 'fdsafds' -
php存数组到数据库,PHP将数组保存到数据库
2021-03-23 23:53:31 在很多时候,我们需要把数字保存到数据库,实现对于结构化数据的直接存储以及读取。 有一个经典用法就是,表单中的复选框checkbox叫多项数据提交给PHP后端,那PHP接收到的就是一个数组,且在很多情况下,有可能...