실행 직후 실행 된 SQL을 인쇄하는 방법
-
-
너무 늦었지만 나중에 참고할 수 있습니다.쿼리에 전달하기 전에 준비 문을 에코 할 수 있습니다.확실히 쉬울 것입니다.I know it's too late, but for future reference. You can just echo prepare statement before passing it to query. It would be surely easier.
- 1
- 2016-10-20
- Maciej Paprocki
-
4 대답
- 투표
-
- 2013-08-16
$wpdb
개체에는이를 위해 설정되는 몇 가지 속성이 있습니다.global $wpdb; // Print last SQL query string echo $wpdb->last_query; // Print last SQL query result echo $wpdb->last_result; // Print last SQL query Error echo $wpdb->last_error;
참고 : 우선 WordPress의 루트 폴더에있는
define( 'SAVEQUERIES', true );
파일에wp-config.php
를 설정해야합니다.The
$wpdb
object has some properties getting set for that:global $wpdb; // Print last SQL query string echo $wpdb->last_query; // Print last SQL query result echo $wpdb->last_result; // Print last SQL query Error echo $wpdb->last_error;
Note: First of all you have to set
define( 'SAVEQUERIES', true );
in yourwp-config.php
file at root folder of WordPress.-
흠하지만 제 경우에는 $ wpdb-> last_query에 아무것도 없습니다.hmm but in my case there is nothing in $wpdb->last_query.
- 0
- 2013-08-16
- ravisoni
-
`wp-config.php`에서`defined ( 'SAVEQUERIES',true);`또는`!defined ( 'SAVEQUERIES') AND defined ( 'SAVEQUERIES',true);`스크립트에서?그렇지 않으면 작동하지 않습니다.Have you `defined( 'SAVEQUERIES', true );` in your `wp-config.php` or something like `! defined( 'SAVEQUERIES' ) AND defined( 'SAVEQUERIES', true );` in your script? Else it won't work.
- 0
- 2013-08-16
- kaiser
-
예,저는 $ wpdb-> last_query 설정이 아무것도 없다는 쿼리가 전혀 실행되지 않는다고 생각합니다.:(Yes i have, I think the query is not running at all that y there is nothing setting is $wpdb->last_query. :(
- 0
- 2013-08-16
- ravisoni
-
그런 다음 wp_debug를 켜면 오류 또는 경고가 표시됩니다.turn on wp_debug then, so that you'll get errors or warning if any there.
- 1
- 2013-08-16
- Kumar
-
WordPress 데이터베이스 오류 : [Query wasempty]WordPress database error: [Query was empty]
- 0
- 2013-08-16
- ravisoni
-
대신`$ wpdb->get_results ()`를 시도하고`$ wpdb`에 대한 Codex 문서를 살펴보십시오.Try `$wpdb->get_results()` instead and take a look at the Codex documentation on `$wpdb`.
- 0
- 2013-08-16
- kaiser
-
원래 쿼리가 오래 전의 것임을 알고 있지만 열 크기 문제가 발생한 것 같습니다.오류없이 쿼리 결과가없는 솔루션을 검색하는 다른 사람에게만 해당-쿼리의 열이 데이터베이스의 열 크기를 초과하면 wpdb가 메시지 나 오류없이 자동으로 종료된다는 점에 유의하십시오.이런 일이 발생하는 것을 볼 방법이 거의 없으며 WordPress는이 문제를 고치는 데 부주의하게 저항했습니다 (IMHO).개발 환경에서 wpdb.php에 넣을 수있는 짧은 패치가있어이를 훨씬 쉽게 볼 수 있습니다.I know your original query was from a long time ago, but it sounds like you were hitting the column size issue. Just for anyone else who is searching for a solution to no query results with no error - be warned that wpdb exits silently, with no message or error, when a column in your query exceeds the size of the column in your database. There is almost no way to see this has happened, and WordPress have been carelessly resistant (IMHO) to fixing this. There is a short patch you can put into wpdb.php in a dev environment to make seeing this much easier.
- 1
- 2019-12-22
- Brian C
-
@BrianC 패치에 연결하고 싶습니까?또는 더 나은 방법 : 답변에 추가 하시겠습니까?아니면이 대답을 [편집]?@BrianC You might want to link to the patch? Or even better: Add it in an answer? Or [edit] this answer?
- 0
- 2019-12-26
- kaiser
-
- 2013-08-16
여기에 3 가지 접근 방식을 나열했습니다.
-
SAVEQUERIES
사용 및 바닥 글에 모든 검색어 인쇄 -
$ wpdb- > last_query
를 사용하여 실행 된 최근 쿼리 만 인쇄하면 디버깅 기능에 유용합니다. - 쿼리 모니터와 같은 플러그인 사용
이것을 wp-config.php에 추가해야합니다.
define ( 'SAVEQUERIES',true);
그런 다음 테마 바닥 글에 다음 코드를 추가하세요.
<사전> <코드> & lt;?php if (current_user_can ( 'administrator')) { 글로벌 $ wpdb; echo "& lt;pre > 검색어 목록 :"; print_r ($ wpdb- > 쿼리); 에코 "& lt;/pre >"; }//페이지에서 실행 된 모든 쿼리를 나열합니다. ? >또는 마지막으로 실행 된 쿼리 만 인쇄하려는 경우
$ wpdb
쿼리 함수 호출 바로 아래에 사용할 수 있습니다.global $ wpdb; echo $ wpdb- > last_query;//는 단일 쿼리 만 나열합니다.
세 번째 접근 방식은 페이지에서 실행 된 모든 쿼리를 자세히 나열하는 쿼리 모니터와 같은 플러그인을 사용하는 것입니다. 그리고 반환되는 행 수,실행에 걸리는 시간 또는 속도가 느린 지 등 관련된 기타 세부 정보를 나열합니다. 질문. http://wordpress.org/plugins/query-monitor/
이 플러그인은 DEV 환경에서만 사용하는 것이 좋으며 라이브 사이트에서 활성화 된 상태로 두어서는 안됩니다. 또한 쿼리 모니터는 오류가 너무 많은 경우 템플릿/페이지의 5XX 오류와 같이 페이지에 문제를 일으킬 수 있습니다.
I've listed down 3 approaches in here:
- Using
SAVEQUERIES
and printing all the queries in footer - Using
$wpdb->last_query
to print just the latest query executed, this is useful for debugging functions. - Using a plugin like Query Monitor.
You'd need to add this in your wp-config.php
define('SAVEQUERIES', true);
Then in the footer of your theme add this code:
<?php if (current_user_can('administrator')){ global $wpdb; echo "<pre>Query List:"; print_r($wpdb->queries); echo "</pre>"; }//Lists all the queries executed on your page ?>
Or if you'd like to print just the last executed query, you can use this just below your
$wpdb
query function call.global $wpdb; echo $wpdb->last_query;//lists only single query
A 3rd approach would be to use a plugin like Query Monitor which lists all the queries executed on a page in detail, and other details associated with it like how many rows it returns and the time taken for execution or if it's a slow query. http://wordpress.org/plugins/query-monitor/
It's a good idea to use this plugin in DEV environment only and shouldn't be left activated on a live site. Also, Query Monitor can sometimes cause issues with your page, Like 5XX error on your template/page if there are too many errors.
-
- 2017-04-15
두 기능을 모두 추가해야합니다. 그렇지 않으면 오류가 표시되지 않습니다.
$wpdb->show_errors(); $wpdb->print_error();
이 함수는 이와 같은 적절한 오류를 보여줍니다.
You have to add both functions,otherwise it will never show error
$wpdb->show_errors(); $wpdb->print_error();
This function will show you proper error like this this
-
- 2017-07-04
@kaiser의 최고 찬성 답변이 완전히 정확하지 않다는 점을 추가하고 싶습니다.
// Print last SQL query string $wpdb->last_query
반환은 문자열이 아니라 ARRAY 입니다.따라서 마지막 쿼리를 출력하려면 다음을 수행해야합니다.
echo 'Last query: '.var_export($wpdb->last_query, TRUE);
I wanted to add that the best up-voted answer by @kaiser is not fully correct:
// Print last SQL query string $wpdb->last_query
The return of it is ARRAY, not a string. So to output last query you should do this:
echo 'Last query: '.var_export($wpdb->last_query, TRUE);
다음에 실행 된 SQL 쿼리를 인쇄 할 수있는 방법을 찾고 있습니다.
쿼리에 어떤 값이 들어가는 지 알 수 있다면 좋을 것입니다.
감사합니다