SQLSTATE : Ошибка синтаксиса или нарушение доступа: 1065 Запрос был пуст (SQL:)

У меня есть класс PHP следующим образом:

class SearchAttributeDao extends BaseDao { private $SELECT_CATEGORY_FILTER_BY_IDS; function __construct() { $this->table_name = 'categoryattributes'; $this->SELECT_CATEGORY_ATTR_BY_IDS = "SELECT csa.attributeid, atn.name FROM " .$this->table_name. " csa join attributenames atn on csa.attributeid = atn.attributeid where csa.categoryid in (?); "; } public function getListByCatIds(array $catIds) { //... $attr_list = $this->executeSelectQuery($this->SELECT_CATEGORY_FILTER_BY_IDS, [$catIds]); //Error on this line //... } } 

Поэтому, когда я выполняю свое приложение, я получаю сообщение об ошибке:

SQLSTATE [42000]: ошибка синтаксиса или нарушение доступа: 1065 Запрос был пуст (SQL:) … в BaseDao-> executeSelectQuery (null, array (array ('10523', '10524', '10606', '10423', '10533', '10618'))) в строке SearchAttributeDao.php 24

Вышеуказанная stacktrace предполагает, что SELECT_CATEGORY_FILTER_BY_IDS имеет значение null или пусто, но я установил его в конструкторе. Что я сделал не так?

Вы звоните:

 $this->executeSelectQuery($this->SELECT_CATEGORY_FILTER_BY_IDS.. 

но вы определили:

 $this->SELECT_CATEGORY_ATTR_BY_IDS = "SELECT csa.attributeid,... 

Попробуйте исправить имена и повторите попытку.