我已经在很多地方和这个网站上查看过,并且我正处于开发阶段。我正在制作一个网站并使用 MySQL 来使用 PHP 存储内容。该网站的一部分是我想存储用户玩的游戏类型,这些类型将分为三个类别:游戏/平台/用户名。
作为一名编码员,我想制作一组并行向量/数组列表来保存这些东西,因为它们可能玩的游戏数量是未定义的。我正在考虑制作一个表格,但每次我尝试它都不会出现在数据库中。根据我的发现,人们说不要在数据库中使用数组,因为这会破坏数据库的用途。我将如何动态存储这些字段?
另外,从我发现的情况来看,有一个叫做 serialize()
的东西,我不明白如何使用它,我可以查一下。然而,人们说这不是做这样的事情的“正确”方式,但他们可能是错的。
最佳答案
Serialize 获取一个数组并将其转换为字符串。然后,您可以获取该字符串并将其保存为单个表条目。
可能会是这样的:
$user = array();
$games = array();
$games[] = array("Game" => "Chess", "Platform" => "Computer", "UserName" => "ChessMaster");
$games[] = array("Game" => "Checkers", "Platform" => "Mobile", "UserName" => "CheckersPlayer");
$games[] = array("Game" => "Solitaire", "Platform" => "Computer", "UserName" => "SolitaireUser");
$user[] = $games;
现在,为了将条目保存到数据库中,您可以使用serialize() 将用户数组转换为字符串。
$serializedUser = serialize($user);
这将输出:
//echo $serializedUser;
a:1:{i:0;a:3:{i:0;a:3:{s:4:"Game";s:5:"Chess";s:8:"Platform";s:8:"Computer";s:8:"UserName";s:11:"ChessMaster";}i:1;a:3:{s:4:"Game";s:8:"Checkers";s:8:"Platform";s:6:"Mobile";s:8:"UserName";s:14:"CheckersPlayer";}i:2;a:3:{s:4:"Game";s:9:"Solitaire";s:8:"Platform";s:8:"Computer";s:8:"UserName";s:13:"SolitaireUser";}}}
关于php - MySQL 中存储数组与关联表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24170134/