Как можно организовать такое выполнение запроса PDO с bind_param?

Есть такой запрос к бд:
$stmts = $this->db->prepare("SELECT user_id FROM usersSettings WHERE ?=?");
$stmts->bind_param("ss", $method,$percent);

В запросе первый "?" это название столбца, который должен проверяться. Увы, такой способ записи мне ничего не выводит ([num_rows] => 0). Если вместо первого ? написать конкретный столбец в таблице, то все работает корректно, каким способом можно задавать этот столбец (который должен передаваться как аргумент в функцию)?
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ответы на вопрос 2
OKyJIucT
@OKyJIucT
Sunshine reggae
Третий параметр в bind_param это тип данных параметра $method. Что у вас в этой переменной?

Вы хотите, чтобы получилось так?
"SELECT user_id FROM usersSettings WHERE ss=$method";


Попробуйте так - уберите третий параметр.
$stmts = $this->db->prepare("SELECT user_id FROM usersSettings WHERE ?=?");
$stmts->bind_param("ss", $method);
Ответ написан
@Shadowbearer
В PDO нельзя параметризировать названия таблиц и полей. Т.е. конструкции WHERE ? = ? или SELECT * FROM :table работать не будут.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы