在MySQL中存储数组与关联表

时间:2014-06-11 18:35:04

标签: php mysql

我已经在很多地方看过这个网站,而且我在开发区。我正在建立一个网站并使用MySQL来存储使用PHP的东西。这个网站的一部分是我想存储用户玩的游戏类型,这些类型可以分为三类,游戏/平台/用户名。

作为一名程序员,我想制作一组平行的矢量/数组列表来保存这些东西,因为他们可能玩的游戏数量是不确定的。我正在考虑制作一张桌子,但每次尝试它都不会出现在数据库中。从我发现的,人们说不使用数据库数据库,因为这破坏了数据库的目的。如何动态存储这些字段?

同样根据我的发现,有一个名为serialize()的东西,我不明白如何使用它,我可以看一下。然而,人们说它不是"正确的"做这样的事情的方式,但他们可能是错的。

1 个答案:

答案 0 :(得分:0)

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";}}}