我目前正在使用一个mybb设置,我正在尝试执行一个sql查询,该查询可以检查用户是否属于某个附加组。然而,我有困难。
mybb在一个由逗号分隔的varchar字段中存储额外的组id,例如1、23、27、30、49等。我知道在php中,我可以使用逗号作为分隔符来分解字符串。我知道mysql不能爆炸,但我可以使用substring\u 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-索引我似乎在遵循他们构造条件的方式,但我得到以下错误:
致命错误:未捕获的pdoexception:sqlstate[hy000]:常规错误:mode必须是e:\xampp\htdocs\11thinfantrybrigade.co.uk\orbat中的整数。php:180 stack 跟踪:#0 e:\xampp\htdocs\11thinfantrybrigade.co.uk\orbat.php(180):pdo->query('select username…',','1')#1{main}在e:\xampp\htdocs\11thinfantrybrigade.co.uk\orbat.php的第180行抛出
有什么建议吗?
最终目标是打印满足该条件的用户列表。
谢谢您。
2条答案
按热度按时间e4eetjau1#
最好是这样
,
在引号之外会给php带来麻烦。5lwkijsr2#