PHP/MySQL : Storing Multiple Values in Database Column

标签 php mysql database arrays

我有一个允许您输入电话号码的表格。您可以单击加号按钮并添加更多字段。我需要将所有这些值存储在数据库中,但只有一列可以做到这一点。

电话号码还有一个类型下拉列表,您可以在其中选择以下内容:手机、家庭和工作。所以我需要一种方法将每个字段的类型和数字配对在一起,然后将所有配对组合在一起。稍后当我需要这些信息时,能够将其全部提取出来并将所有值放入一个数组中。几乎就像加密和解密。

我在想这样的事情:

type:number;type:number;type:number;type:number;type:number;type:number

可以使用explode和implode来加解密。

但这有多好呢?我还有一个搜索电话号码的搜索功能。我想我的方法不容易让搜索功能浏览。

最佳答案

我会说这是个坏主意。如果您计划使用有限类型的号码,例如家庭、工作、手机等,我建议您为每个号码添加列。否则制作一个单独的数据库表“phone_numbers”并将其与您的客户 ID 或类似的相关联,并添加任意数量的数字。搜索将变得更快,更易于实现。

如果您仍需要将它们存储在单个字段中,请按照您的建议使用 php implode() 和 explode()。在我这样做的情况下,我会使用我的客户很少想到的字符,例如管道符号“|”作为分隔符。当然,我需要使用 str_replace 或此类技术来过滤掉我的用户是否不小心在输入中使用了它,但最好是它是一个很少使用的字符。

关于PHP/MySQL : Storing Multiple Values in Database Column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13773558/

相关文章:

php - 将消失的默认文本 Your Name 添加到文本输入框

php - Laravel:使用资源 Controller 更新表的单个字段

php - Amazon RDS 中的 lower_case_table_names 设置

javascript - 从 php 中的包含页面访问输入 id

c# - MySql LIMIT 1 子句的替代方案 - 不希望仅限于一个 RDBMS

mysql - 将三个独立的模型连接成一个结果

mysql - 在 MySQL 中添加日期字段验证

PHP/MySQL 下拉菜单

php - 使用 SQL 语句将三个表连接在一起以从每个表中获取数据

mysql - 我们如何在使用连接时极大地优化我们的 MySQL 数据库(或替换它)?