gpt4 book ai didi

php - 使用 MyBB 创建 MySQL 查询以分解存储字符串的字段

转载 作者:行者123 更新时间:2023-11-29 17:34:45 24 4
gpt4 key购买 nike

我目前正在使用 MyBB 设置,我正在尝试执行 SQL 查询,该查询可以检查用户是否属于某个附加组。但是,我遇到了困难。

MyBB 将其他组 ID 存储在一个用逗号分隔的 VARCHAR 字段中,例如 1,23,27,30,49 等。我知道在 PHP 中我可以使用逗号作为分隔符来分解字符串。我知道MySQL不能爆炸,但我可以使用substring_index来实现类似的目标。请注意,每个用户都可以有一个随机的附加组列表,因此并非所有用户都是相同的。

我正在尝试这个

$stmt = $conn->query('SELECT username, additionalgroups FROM my_users WHERE SUBSTRING_INDEX(30, ',', 1)');
foreach ($stmt as $row)
{
print '<div class="name"><a href="#">' . $row['username'] . '</a></div>';
}

但这似乎不起作用。正在查看https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_substring-index我似乎遵循他们构建条件的方式,但出现以下错误:

fatal error :未捕获的 PDOException:SQLSTATE[HY000]:一般错误:模式必须是 E:\xampp\htdocs\11thinfantrybrigade.co.uk\orbat.php:180 中的整数 堆栈跟踪:#0 E:\xampp\htdocs\11thinfantrybrigade.co.uk\orbat.php(180): PDO->query('SELECT 用户名...', ', 1)') #1 {main} 抛出 E:\xampp\htdocs\11thinfantrybrigade .co.uk\orbat.php 第 180 行

请问有什么建议吗?

最终目标是打印满足该条件的用户列表。

谢谢。

最佳答案

$query = 'SELECT username FROM my_users WHERE CONCAT(",",additionalgroups,",") LIKE "%,30,%"' ; 

$stmt = $conn->query($query);
foreach ($stmt as $row)
{
print '<div class="name"><a href="#">' . $row['username'] . '</a></div>';
}

关于php - 使用 MyBB 创建 MySQL 查询以分解存储字符串的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50381236/

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