SQLSTATE : error de syntax o violación de acceso: 1065 Query estaba vacía (SQL:)

Tengo la clase de PHP de la siguiente manera:

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 //... } } 

Entonces, cuando ejecuto mi aplicación, aparece un error que dice:

SQLSTATE [42000]: error de syntax o violación de acceso: 1065 Query estaba vacía (SQL:) … en BaseDao-> executeSelectQuery (null, array (array (‘10523’, ‘10524’, ‘10606’, ‘10423’, ‘10533’, ‘10618’))) en SearchAttributeda.php línea 24

El stacktrace anterior sugiere que SELECT_CATEGORY_FILTER_BY_IDS es nulo o está vacío, pero lo configuré en el constructor. ¿Qué he hecho mal?

Tu estas llamando:

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

pero has definido:

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

Intenta corregir los nombres y vuelve a intentarlo