普通网友 2015-08-03 13:17
浏览 410
已采纳

SQLSTATE [42000]:语法错误或访问冲突:1065查询为空(SQL :)

I have PHP class as follow:

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

So when I executes my application I get an error stating:

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

The stacktrace above suggest that SELECT_CATEGORY_FILTER_BY_IDS is null or empty but I have set it in constructor. What I have done wrong?

  • 写回答

1条回答 默认 最新

  • douxiang3978 2015-08-03 13:22
    关注

    Your are calling:

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

    but you have defined:

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

    Try to correct names and try again

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题