sql语句拼接 报错

clipboard.png

1054:Unknown column 'a.first_letter' in 'where clause'
但数据表是有first_letter这个字段的
[ SQL语句 ] : SELECT a.id AS vod_id, a.classid AS vod_classid, a.name AS vod_name, a.pic_url AS vod_pic_url, a.definition AS vod_definition, a.movie_type AS vod_movie_type, b.price AS vod_price, c.pay_flag AS vod_pay_flag FROM vod AS a LEFT JOIN vod_price AS b ON b.vod_id = a.id LEFT JOIN vod_pay_log AS c ON c.pay_vod_id = a.id AND c.checkin_id = ''WHERE a.status = 1 AND a.classid =1 AND a.first_letter like 'A%' ORDER BY a.sort, a.id DESC</h1>

clipboard.png

阅读 3.4k
3 个回答

歪个楼,一般不要使用sql拼接,因为这样会使攻击者可以SQL注入。最好使用框架带的MODEL层,或者自己写。

你可以试下把a.first_letter放到查询字段里面,记得好像5.7版本之后的sql,查询条件字段必须在select里面有查出来.也可以通过修改my.cnf避免这个.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题