php - MySQL 中存储数组与关联表

标签 php mysql

我已经在很多地方和这个网站上查看过,并且我正处于开发阶段。我正在制作一个网站并使用 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/

相关文章:

php - 在 MySQL/PHP 中存储用户 BIRTHDATES 的最佳方式是什么?

PHP 重定向而不修改 header

php - WooCommerce 有条件自定义结帐字段

MySQL 即时加入条件

mysql - 为什么SELECT 'a' ='b' ='c'在MYSQL中返回1?

php - 在数据库更改时更新 PHP session 变量

php - 使用 dropzone 将附加数据发送到后端

php - MySQL:通过单词搜索缩短查询时间

mysql - ColdFusion10 - 通过插入查询查询 cfloop

MySQL 查询不应返回任何内容,返回一条记录