如何使用 PHP 和 MYSQL 在单个单元格数据库中插入/存储多个项目
Posted
技术标签:
【中文标题】如何使用 PHP 和 MYSQL 在单个单元格数据库中插入/存储多个项目【英文标题】:How to insert / store multiple items in a single cell DataBase using PHP & MYSQL 【发布时间】:2020-03-12 23:24:44 【问题描述】:我在表格中有一个名为 - points
的列
我需要在点列字段中插入/存储多个值并将它们显示为列表项
EX:点(列):
[100% 羊毛,宽度约 72 厘米/28 英寸,可用作区域地毯]
需要输出:
100% 羊毛
宽度约 72 厘米/28 英寸
可用作区域地毯
我的方法是用一个数组来做,但是怎么做呢? 我可以知道使用 php 和 mysql 处理它的任何其他方法吗?
【问题讨论】:
试图让问题更清楚。 【参考方案1】:是的,您可以将数组存储在单个表列中。但首先您需要将数组转换为字符串。例如:
$dataarray = [
'title' => '100% Wool',
'properties' => [
'Width approx 72cm / 28 inches',
'Can be used as an area carpet'
]
]
$datastring = serialize($dataarray); // returns string
// save to to your database, using $datastring as a value for the 'points' column
[...]
再次从数据库中读取数据后,只需对存储的数据进行反序列化即可获得数组:
// load data from database
[...]
$datastring = $row['points'];
$dataarray = unserialize($datastring);
print_r($dataarray);
请注意,单个 mysql-column 可以存储的数据量是有限制的,请参阅https://dev.mysql.com/doc/refman/8.0/en/char.html
作为serialize()
/unserialize()
的替代品,您可以使用json_encode()
/json_dencode()
,它更安全一些,使用更通用的存储格式,请参阅https://www.php.net/manual/en/function.unserialize.php
【讨论】:
以上是关于如何使用 PHP 和 MYSQL 在单个单元格数据库中插入/存储多个项目的主要内容,如果未能解决你的问题,请参考以下文章