В настоящее время я работаю с MyBB, в котором я пытаюсь выполнить SQL-запрос, который может проверить, является ли пользователь частью определенной дополнительной группы.Однако у меня возникают трудности.
MyBB хранит дополнительные идентификаторы группы в одном поле 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 Кажется, я следую их способу построения условия, но я получаю следующую ошибку:
Неустранимая ошибка: Uncaught PDOException: SQLSTATE [HY000]: Общая ошибка: режим должен бытьцелое число в E: \ xampp \ htdocs \ 11thinfantrybrigade.co.uk \ orbat.php: 180 Трассировка стека: # 0 E: \ xampp \ htdocs \ 11thinfantrybrigade.co.uk \ orbat.php (180): запрос PDO->('ВЫБЕРИТЕ имя пользователя ...', ', 1)') # 1 {main}, брошенный в E: \ xampp \ htdocs \ 11thinfantrybrigade.co.uk \ orbat.php в строке 180
Любой совет, пожалуйста?
Конечная цель - распечатать список пользователей, соответствующих этим критериям.
Спасибо.