从数据库中选择数据时遇到问题。它显示出以下错误

 A Database Error Occurred

 Error Number: 1054

 Unknown column 'BA' in 'where clause'

 SELECT * FROM crime_details INNER JOIN crime_slink ON crime_slink.report_ID =crime_details.report_ID INNER JOIN crime_suspect ON crime_suspect.id=crime_slink.suspect_id INNER JOIN crime_vlink ON crime_vlink.report_ID=crime_details.report_ID INNER JOIN crime_victim ON crime_victim.id=crime_vlink.victim_id WHERE crime_details.report_ID =BA-12-00002

 Filename: C:\xampp\htdocs\CNPPO\system\database\DB_driver.php

 Line Number: 330

似乎问题出在这部分WHERE crime_details.report_ID =BA-12-00002
我认为问题是由查询中的破折号或连字符引起的。
我在使用codeigniter的$this->db-query()函数进行查询。

最佳答案

crime_details.report_ID包含一个VARCHAR,所以您的where条件应该是

WHERE crime_details.report_ID = 'BA-12-00002'

也就是说,您需要用引号将值括起来。
另外,您不应该使用$this->db->query()来运行手写的mysql查询,而应该使用activerecord的查询生成器来处理这个问题。例如,您可以:
$query = $this->db->get_where('crime_reports', array( 'report_ID' => 'BA-12-00002' ));

10-05 21:03
查看更多