2012-11-30 4 views
3

데이터베이스에서 데이터를 선택하는 데 문제가 있습니다. 그것은 오류codeigniter 데이터베이스 선택시 오류가 발생했습니다.

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() 기능을 사용하고 있습니다.

+0

나는 당신이 BA-12-00002' – Darrrrrren

+0

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

+0

활성 기록은 무엇을 "여기서 '조건'따옴표가 필요합니다 생각 여기에 게시하십시오 –

답변

2

crime_details.report_ID은 그래서 당신의 경우 조건이

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

즉, 따옴표의 값을 래핑 할 필요가해야하는 VARCHAR을 보유하고 있습니다.

또한 수동으로 작성한 MySQL 쿼리를 실행하는 데 $this->db->query()을 사용하는 대신 ActiveRecord의 쿼리 빌더를 사용해야합니다. 예를 들어, 당신은 할 수 있었다 :

$query = $this->db->get_where('crime_reports', array('report_ID' => 'BA-12-00002')); 
+0

아니면 단지 PDO를 사용하여 CI – AlienWebguy

+1

@ AlienWebguy에서 쿼리를 유지하십시오.이 경우 왜 MVC 프레임 워크를 사용해야합니까? –

+0

그게 나쁜 동화 아니야. MVC 프레임 워크를 사용하면 코드를 구성하고 개발 시간을 단축 할 수 있습니다. 그들은 시험되고 테스트 된 라이브러리를 제공하므로 devs는 사이트를 구축하는 데 시간을 소비 할 수 있으며 양식 유효성 검사기와 기타 등등을 작성할 시간을 줄일 수 있습니다. 즉, PDO> CI의 적극적인 기록입니다. 제 의견으로는 자세한 정보를 줄이는 것과 마찬가지로 더 나은 OOP 표준을 따릅니다. – AlienWebguy

1

변경

WHERE crime_details.report_ID =BA-12-00002 

WHERE crime_details.report_ID = "BA-12-00002" 
관련 문제