У меня есть таблица пользователей, и я хочу, чтобы иметь возможность фильтровать таблицу по столбцу электронной почты, поэтому я могу видеть всех пользователей с учетными записями «gmail.com», например.
Мой текущий запрос fpdo выглядит так:
$filter_email = trim($_GET['email']); $fpdo->from('users') ->where('users.email LIKE "%' . $filter_email . '%"') ->fetchAll(); 
  Когда я устанавливаю $filter_email в @ b , все работает нормально, а FluentPDO генерирует этот оператор SQL: 
 SELECT users.* FROM users WHERE users.email LIKE "%a@b%" 
  Но если я ищу @ bc FluentPDO пытается найти таблицу b и ошибки 
 SELECT users.* FROM users LEFT JOIN b ON b.id = users.b_id WHERE users.email LIKE "%a@bc%" 
  Я не знаю, как FluentPDO видит bc как таблицу для присоединения или как ее остановить. 
РЕШЕНИЕ
Спасибо, главным образом, за то, что он был deceze, а также для aynber, вот рабочее решение:
 $filter_email = '%'.trim($_GET['email']).'%'; $fpdo->from('users') ->where('users.email LIKE ?',$filter_email) ->fetchAll(); 
  Мой фактический запрос проверяет три разных поля электронной почты, но использует три ?  и добавление $filter_email три раза отлично работает: 
 ->where( '(users.email1 LIKE ? OR users.email2 LIKE ? OR users.email1 LIKE ?)', $filter_email, $filter_email, $filter_email )