내 모델에 SQL 문이 있습니다.
나는 다음 말한다
$query = $this->db->query($sql, array(fields, fields1);
if ($query) {
return true:
} else {
echo "failed";
return false;
}
내 쿼리는 항상 실패합니다. 내 데이터베이스로 전송되는 정확한 SQL 문을 인쇄하도록 PHP를 얻으려면 어떻게해야합니까? 그리고 내 PHP보기, 페이지에 표시
답변
쿼리 문자열을 표시하려면 :
print_r($this->db->last_query());
질의 결과를 표시하려면 :
print_r($query);
Profiler 클래스는 페이지 하단에 벤치 마크 결과, 실행 한 쿼리 및 $ _POST 데이터를 표시합니다. 프로파일 러를 활성화하려면 Controller 메서드 내에서 다음 줄을 배치하십시오.
$this->output->enable_profiler(TRUE);
프로파일 링 사용자 가이드 :
https://www.codeigniter.com/user_guide/general/profiling.html
답변
이것을 사용할 수 있습니다 :
$this->db->last_query();
“실행 된 마지막 쿼리 (결과가 아닌 쿼리 문자열)를 반환합니다.”
Reff : https://www.codeigniter.com/userguide3/database/helpers.html
답변
ActiveRecord 생성 SQL을 표시 할 수 있습니다.
쿼리를 실행하기 전에 :
$this->db->_compile_select();
그리고 실행 후 :
$this->db->last_query();
답변
쿼리에 대한 빠른 테스트가 필요한 경우이 방법이 좋습니다.
echo $this->db->last_query(); die;
답변
사용에 성공하지 못 _compiled_select()
하거나 get_compiled_select()
방금 db
개체를 인쇄 한 후 queries
속성 에서 쿼리를 볼 수 있습니다 .
직접 시도해보십시오.
var_dump( $this->db );
쿼리가 하나만 있다는 것을 알고있는 경우 직접 인쇄 할 수 있습니다.
echo $this->db->queries[0];
답변
get_compiled_select
쿼리를 실행하기 전에 인쇄 할 수 있는 새로운 공용 메서드 가 있습니다. _compile_select
이제 보호되므로 사용할 수 없습니다.
echo $this->db->get_compiled_select(); // before $this->db->get();
답변
마지막에 간단히 사용할 수 있습니다 ..
echo $this->db->last_query();