[SQL] 어떻게 컨트롤러 CakePHP의 SQL 덤프를 볼 수 있습니까?
SQL어떻게 컨트롤러 CakePHP의 SQL 덤프를 볼 수 있습니까?
하나는 CakePHP의 수요에 자사의 SQL 로그를 덤프시킬 수있는 방법이 있습니까? 나는 내 컨트롤러에서 지점까지 코드를 실행하고 SQL이 실행 된 것을보고 싶습니다.
해결법
-
==============================
1.이 시도:
이 시도:
$log = $this->Model->getDataSource()->getLog(false, false); debug($log);
http://api.cakephp.org/2.3/class-Model.html#_getDataSource
당신은 당신이 하나 이상의 생각이있는 경우 각 데이터 소스에 대해이 작업을 수행해야합니다.
-
==============================
2.쿼리를 표시하는 네 가지 방법이 있습니다 :
쿼리를 표시하는 네 가지 방법이 있습니다 :
-
==============================
3.당신이 CakePHP는 1.3을 사용하는 경우, 당신은 SQL 출력에 대한 귀하의 의견이 넣을 수 있습니다 :
당신이 CakePHP는 1.3을 사용하는 경우, 당신은 SQL 출력에 대한 귀하의 의견이 넣을 수 있습니다 :
<?php echo $this->element('sql_dump'); ?>
그래서 당신은 당신이 그것을보고 싶어 할 때마다 컨트롤러에이 전화를 한 후 위의 전용 라인을 포함하는 'SQL'라는 뷰를 작성하고 수 :
$this->render('sql');
(또한 응용 프로그램 / 설정 / core.php 적어도 2 디버그 레벨을 설정 기억)
출처
-
==============================
4.CakePHP는 2.0 AppModel.php에서이 함수를 작성
CakePHP는 2.0 AppModel.php에서이 함수를 작성
function getLastQuery() { $dbo = $this->getDatasource(); $logs = $dbo->getLog(); $lastLog = end($logs['log']); return $lastLog['query']; }
컨트롤러에서 이것을 사용하려면 쓰기 : 에코 $ this-> YourModelName-> getLastQuery ();
-
==============================
5.크게 CakePHP의는 $ this-> 모델 -> lastQuery ()가 발생하지 않는 것을 실망;입니다 여기에 Handsofaten의 수정 된 버전을 포함하여이 개 솔루션은 다음과 같습니다 :
크게 CakePHP의는 $ this-> 모델 -> lastQuery ()가 발생하지 않는 것을 실망;입니다 여기에 Handsofaten의 수정 된 버전을 포함하여이 개 솔루션은 다음과 같습니다 :
당신의 /app_model.php 파일 추가에, 마지막 쿼리 실행을 인쇄하려면 :
function lastQuery(){ $dbo = $this->getDatasource(); $logs = $dbo->_queriesLog; // return the first element of the last array (i.e. the last query) return current(end($logs)); }
그럼 당신은 실행할 수있는 출력을 인쇄합니다 :
debug($this->lastQuery()); // in model
또는
debug($this->Model->lastQuery()); // in controller
모든 쿼리는 컨트롤러 (또는 구성 요소 등) 실행에 주어진 페이지 요청에 실행 인쇄하려면 :
$this->render('sql');
그것은 가능성이 누락 된 뷰 오류가 발생합니다, 그러나 이것은 최근의 쿼리에 액세스보다 낫다!
(AS Handsofaten 케이크 / libs와 /보기 / 요소 /의 /elements/sql_dump.ctp가 말했다,하지만 난 sql.ctp보기를 생성하지 않고 위의 작업을 수행 할 수 있었다. 캔 누군가가 설명?)
-
==============================
6.CakePHP는 1.2 ..
CakePHP는 1.2 ..
$db =& ConnectionManager::getDataSource('default'); $db->showLog();
-
==============================
7.어떤 2.0 호환도 나를 위해 마지막으로 일한 것은 내 레이아웃에 추가하는 것입니다 (또는 모델)
어떤 2.0 호환도 나를 위해 마지막으로 일한 것은 내 레이아웃에 추가하는 것입니다 (또는 모델)
<?php echo $this->element('sql_dump');?>
또한 구성 / core.php에 살고 있고 디버그 변수에 따라한다
-
==============================
8.케이크에 대한 DebugKit를 플러그인하는 일을 할뿐만 아니라 것입니다. https://github.com/cakephp/debug_kit
케이크에 대한 DebugKit를 플러그인하는 일을 할뿐만 아니라 것입니다. https://github.com/cakephp/debug_kit
from https://stackoverflow.com/questions/3647065/how-can-i-see-cakephps-sql-dump-in-the-controller by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 고려 시간을내어없이 날짜 시간 열을 기준으로 I 그룹 (0) | 2020.05.18 |
---|---|
[SQL] 데이터베이스 구조 변경에 대한 버전 관리 시스템이 있습니까? (0) | 2020.05.18 |
[SQL] PostgreSQL은 - 열에 대해 최대 값을 갖는 행을 페치 (0) | 2020.05.18 |
[SQL] 포함하지 "사이의"SQL (0) | 2020.05.18 |
[SQL] 나는 SQL Server 2005의 일부 레코드를 업데이트 CASE 문을 사용하려면 (0) | 2020.05.18 |