我在一个表中有一个名为- points的列,我需要在一个points列字段中插入/存储多个值,并将它们显示为列表项EX: point(列):100%羊毛,宽度约72厘米/ 28英寸,可用作区域地毯。
所需产出:
我的方法是用数组做这件事,但是怎么做呢?我可以知道使用php & MySQL处理它的其他方法吗?
发布于 2019-11-17 12:18:06
是的,可以将数组存储在单个表列中。但是首先,需要将数组转换为字符串。例如:
$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列可以存储的数据量是有限制的,请参阅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
https://stackoverflow.com/questions/58900211
复制相似问题