gpt4 book ai didi

php - 使用explode、split或preg_split来存储和获取多个数据库条目

转载 作者:行者123 更新时间:2023-11-29 14:52:35 25 4
gpt4 key购买 nike

我试图弄清楚如何以及哪种方式最适合在数据库中存储和获取多个条目。使用explodesplitpreg_split。我需要实现的是,用户使用表单中的文本字段向不同用户发送多条消息,或者通过输入 ID(如“101,102,103”)与多个用户共享数据,并且 PHP 代码足够智能,可以通过以下方式获取每个 ID:在“,”之后分别选择它们。我知道这要求很高,但我需要这方面更熟练的人的帮助。我需要知道如何让 PHP 代码获取 ID 并能够使用它们的函数。就像从数据库单元格中抓取“101,102,103”并使用从该字符串中抓取的 ID 抓取数据库中不同的存储信息一样。

我怎样才能实现这个目标?示例将非常有帮助。

谢谢

最佳答案

如果我正确理解你的问题,如果你正在处理以逗号分隔的 ID 号字符串,那么将它们保留为这种格式可能是最简单的。原因是因为您可以在查询数据库时在 SQL 语句中使用它。

我假设您想要运行 SELECT 查询来获取已输入 ID 的用户,对吗?您需要使用 SELECT ... WHERE IN ... 类型的语句,如下所示:

// Get the ids the user submitted
$ids = $_POST['ids'];
// perform some sanitizing of $ids here to make sure
// you're not vulnerable to an SQL injection
$sql = "SELECT * FROM users WHERE ID IN ($ids)";
// execute your SQL statement

或者,您可以使用 explode 创建每个单独 ID 的数组,然后循环遍历,以便在使用 implode 之前对每个值进行一些检查以确保其正确 将它们重新连接成一个字符串,您可以在 SELECT ... WHERE IN ... 语句中使用该字符串。

编辑:抱歉,忘记添加:就在数据库中存储用户 ID 列表而言,您可以考虑将逗号分隔列表存储为针对消息 ID 的字符串,但是那样有缺点(如果需要的话,很难在其他表上进行 JOINS)。或者,更好的选择是创建一个查找类型表,该表基本上由两列组成:messageiduserid。然后,您可以根据 messageid 存储每个单独的 userid,例如

messageid | userid
1 | 1
1 | 3
1 | 5

这种方法的好处是,您可以使用此表来连接其他表(也许您有一个单独的 message 表来存储消息本身的详细信息)。

在此方法下,您将在消息表中创建一个新条目,获取 id,然后将 userids 字符串分解为单独的部分,最后创建 INSERT 语句来插入使用个人 ID 和消息 ID 的数据。您需要制定其他机制来处理消息用户 ID 列表的任何编辑以及删除。

希望这是有道理的!

关于php - 使用explode、split或preg_split来存储和获取多个数据库条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5436536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com