我有如下 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]: Syntax error or access violation: 1065 Query was empty (SQL: ) ... at BaseDao->executeSelectQuery(null, array(array('10523', '10524', '10606', '10423', '10533', '10618'))) in SearchAttributeDao.php line 24
上面的堆栈跟踪表明 SELECT_CATEGORY_FILTER_BY_IDS
为 null 或为空,但我已在构造函数中设置它。我做错了什么?
最佳答案
您调用的电话:
$this->executeSelectQuery($this->SELECT_CATEGORY_FILTER_BY_IDS..
但是你已经定义了:
$this->SELECT_CATEGORY_ATTR_BY_IDS = "SELECT csa.attributeid,...
尝试更正名称并重试
关于php - SQLSTATE[42000] : Syntax error or access violation: 1065 Query was empty (SQL: ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31788387/