[SQL] CodeIgniter의 모델에서 SQL 문을 인쇄하는 방법
SQLCodeIgniter의 모델에서 SQL 문을 인쇄하는 방법
나는 나의 모델의 SQL 문을
나는 그 말을
$query = $this->db->query($sql, array(fields, fields1);
if ($query) {
return true:
} else {
echo "failed";
return false;
}
내 쿼리는 항상 내가 어떻게 내 데이터베이스로 전송되는 정확한 SQL 문을 인쇄 할 수 PHP를받을 수 있나요 실패? 그리고 내 PHP는보기 페이지가 표시
해결법
-
==============================
1.쿼리 문자열을 표시하려면 :
쿼리 문자열을 표시하려면 :
print_r($this->db->last_query());
쿼리 결과를 표시하려면 :
print_r($query);
프로파일 러 클래스는 페이지의 하단에 실행 한 쿼리 및 $ _POST 데이터를 벤치 마크 결과를 표시합니다. 프로파일 장소 귀하의 컨트롤러 방법 내에서 다음 줄의 어느 곳을 사용하려면 :
$this->output->enable_profiler(TRUE);
사용자 설명서를 프로파일 링 : https://www.codeigniter.com/user_guide/general/profiling.html
-
==============================
2.당신은이를 사용할 수 있습니다 :
당신은이를 사용할 수 있습니다 :
$this->db->last_query();
"마지막으로 실행 된 쿼리 (쿼리 문자열이 아닌 결과를) 반환합니다."
REFF : https://www.codeigniter.com/userguide3/database/helpers.html
-
==============================
3.당신은 액티브 생성 된 SQL을 표시 할 수 있습니다 :
당신은 액티브 생성 된 SQL을 표시 할 수 있습니다 :
쿼리를 실행하기 전에 :
$this->db->_compile_select();
그리고 그것은 실행 후 :
$this->db->last_query();
-
==============================
4.당신이 당신의 쿼리를 빠르게 검사가 필요한 경우,이 나를 위해 좋은 작품
당신이 당신의 쿼리를 빠르게 검사가 필요한 경우,이 나를 위해 좋은 작품
echo $this->db->last_query(); die;
-
==============================
5.사용 _compiled_select () 또는 get_compiled_select에 성공하지 않고 시도 후 () 난 그냥 DB 객체를 인쇄, 당신은 쿼리 속성에서 쿼리가를 볼 수 있습니다.
사용 _compiled_select () 또는 get_compiled_select에 성공하지 않고 시도 후 () 난 그냥 DB 객체를 인쇄, 당신은 쿼리 속성에서 쿼리가를 볼 수 있습니다.
스스로를보십시오 :
var_dump( $this->db );
당신은 당신이 단 하나 개의 쿼리를 알고 있다면, 당신은 그것을 직접 인쇄 할 수 있습니다 :
echo $this->db->queries[0];
-
==============================
6.당신은 단순히 말에 이것을 사용할 수 있습니다 ..
당신은 단순히 말에 이것을 사용할 수 있습니다 ..
echo $this->db->last_query();
-
==============================
7.를 실행하기 전에 쿼리를 인쇄 할 수있는 새로운 공공 방법 get_compiled_select이있다. _compile_select은 그러므로 이제 보호를 사용할 수 없습니다.
를 실행하기 전에 쿼리를 인쇄 할 수있는 새로운 공공 방법 get_compiled_select이있다. _compile_select은 그러므로 이제 보호를 사용할 수 없습니다.
echo $this->db->get_compiled_select(); // before $this->db->get();
-
==============================
8.페드로의 코드에 약간의 변화가 잘 나를 위해 작동하므로 어느 last_query () 또는 get_compiled_select는 (), 나를 위해 작동합니다. 포함하지 마십시오 -) (> GET ->의 get () 빌드에서, 이것은 이전이어야합니다
페드로의 코드에 약간의 변화가 잘 나를 위해 작동하므로 어느 last_query () 또는 get_compiled_select는 (), 나를 위해 작동합니다. 포함하지 마십시오 -) (> GET ->의 get () 빌드에서, 이것은 이전이어야합니다
echo $this->EE->db->_compile_select();
-
==============================
9.는 SQL이 wrong.So 나는이 같은 새로운 접근 방식을 발견하기 때문에, 나는 Chumillas의 대답 @ 및 chhameed의 대답 @하려고하지만,하지 작업 :
는 SQL이 wrong.So 나는이 같은 새로운 접근 방식을 발견하기 때문에, 나는 Chumillas의 대답 @ 및 chhameed의 대답 @하려고하지만,하지 작업 :
-
==============================
10.인쇄 할 쿼리 후이 라인의 권리를 추가합니다.
인쇄 할 쿼리 후이 라인의 권리를 추가합니다.
예:
쿼리 = $는 $ this-> db-> query ( '표 WHERE 조건 SELECT *');
이 줄을 추가 //.
위해서 var_dump ($ this-> DB-> last_query ());
출구();
또는
에코 $ this-> DB-> last_query ();
-
==============================
11.각각의 확장 및 CI의 v2.x.와 VSCode에서이 값을 보는 동안 나는 Xdebug는을 사용하고 있습니다 나는 expresion의 $를 추가 this-> DB-> last_query () 시계 섹션에서, 나는이 launch.json에서 GET 비 잘라 내기 값이 라인처럼 xdebugSettings에게 노드를 추가 할 수 있습니다.
각각의 확장 및 CI의 v2.x.와 VSCode에서이 값을 보는 동안 나는 Xdebug는을 사용하고 있습니다 나는 expresion의 $를 추가 this-> DB-> last_query () 시계 섹션에서, 나는이 launch.json에서 GET 비 잘라 내기 값이 라인처럼 xdebugSettings에게 노드를 추가 할 수 있습니다.
{ "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9000, "xdebugSettings": { "max_data": -1, "max_children": -1 } },
그리고 값을 복사> 중단 점 내 디버거를 실행하고 마지막으로 단지 표현에 의해 선택하고 마우스 오른쪽 버튼을 클릭 않습니다.
-
==============================
12.나는 정확히 같은 문제가 있었 결국 해결책을 발견했다. 내 쿼리는 같은 실행 :
나는 정확히 같은 문제가 있었 결국 해결책을 발견했다. 내 쿼리는 같은 실행 :
$result = mysqli_query($link,'SELECT * FROM clients WHERE ' . $sql_where . ' AND ' . $sql_where2 . ' ORDER BY acconame ASC ');
SQL 명령을 표시하기 위해, 모두 내가해야 할 일을했을 나의 쿼리와 동일한 내용 (resultstring $) 변수를 생성 한 후 다음과 같이 그것을 에코 :
효과가있다!
-
==============================
13.쿼리 검색 get_compiled_select ()를 사용하는 대신 교체
쿼리 검색 get_compiled_select ()를 사용하는 대신 교체
-
==============================
14.나는 여기에 모든 대답을 읽을 수 있지만 얻을 수 없다
나는 여기에 모든 대답을 읽을 수 있지만 얻을 수 없다
echo $this->db->get_compiled_select();
일에, 그것은 나에게 오류를 같이했다
난 \ SYSTEM \ 데이터베이스 \ DB_active_rec.php 파일에서 아래 라인으로부터 보호 제거하고 일했다 그래서
protected function _compile_select($select_override = FALSE)
from https://stackoverflow.com/questions/6142099/how-to-print-sql-statement-in-codeigniter-model by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL Server 2005를 - 내보내기 테이블 프로그래밍 (를 재건하기 위해 .SQL 파일을 실행) (0) | 2020.06.01 |
---|---|
[SQL] 어떻게 복합 인덱스의 일을? (0) | 2020.06.01 |
[SQL] SQL에서 병합 기능 (0) | 2020.06.01 |
[SQL] 다른 하나의 반경에있는 좌표를 결정 (0) | 2020.06.01 |
[SQL] 도전, 어떻게 분리의 여섯 개 학위 알고리즘을 구현하는 방법? (0) | 2020.06.01 |