2013-09-28 18 views
0

我在長搜索查詢中使用query_posts。 我的查詢:MySQL錯誤「查詢執行被中斷」後query_posts

<?php $args = array( 
'tag_slug__in' => $cat_id, 
'posts_per_page' => 15, 
'paged' => $page, 
'meta_query' => array( 
array( 
    'key' => 'Пол', 
    'value' => $value_sex, 
    'compare' => 'EXISTS', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Английский', 
    'value' => $english, 
    'compare' => 'EXISTS', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Французский', 
    'value' => $france, 
    'compare' => 'EXISTS', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Немецкий', 
    'value' => $germany, 
    'compare' => 'EXISTS', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Итальянский', 
    'value' => $italy, 
    'compare' => 'EXISTS', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Испанский', 
    'value' => $spain, 
    'compare' => 'EXISTS', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Китайский', 
    'value' => $chine, 
    'compare' => 'EXISTS', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Длина волос', 
    'value' => $hair_length, 
    'compare' => 'EXISTS', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Цвет волос', 
    'value' => $hair_color, 
    'compare' => 'EXISTS', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Удобные дни работы', 
    'value' => $value_days, 
    'compare' => 'EXISTS', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Удобное время работы', 
    'value' => $value_time, 
    'compare' => 'IN', 
    'type' => 'CHAR', 
), 
array( 
    'key' => 'Рост (см)', 
    'value' => array($value_height, $value_height_max), 
    'type' => 'numeric', 
    'compare' => 'BETWEEN', 
), 
array( 
    'key' => 'Размер одежды', 
    'value' => array($value_dress, $value_dress_max), 
    'type' => 'numeric', 
    'compare' => 'BETWEEN', 
), 
array( 
    'key' => 'Размер бюста', 
    'value' => array($value_bust, $value_bust_max), 
    'type' => 'numeric', 
    'compare' => 'BETWEEN', 
),   
) 
); 
?> 

<?php query_posts($args); ?> 

此代碼是在新安裝的WordPress的好作品,但舊的站點是崩潰。 我有「查詢執行被中斷」,「在查詢過程中丟失與MySQL服務器的連接」和「MySQL服務器已經消失」的錯誤error.log 俄語meta_query中的鍵和值。我很抱歉我的英語。請幫忙。

link to error.log

+0

查詢可以超時,如果它需要更多的時間執行。我不確定關於WordPress的,但也許他們有這樣的功能 – Adrian

回答

1

這可能是一個超時問題,在這種情況下,你應該用你的my.cnf修修補補,也許你的mysql只是由於過度的負荷變得反應遲鈍,在這種情況下,提高超時限制不會幫你。

沒有太多空間來優化wordpress默認函數,但是您可以使用$ wpdb-> query()方法編寫自己的查詢,也可以查看當前數據庫的元數據索引。

1

把這個線後query_posts

<?php wp_reset_query(); ?> 
+0

是的,我有wp_reset_query();畢竟在網站上查詢。 – Noise

+0

對wordpress不太瞭解,但是即使在官方文檔中也不建議使用這個函數.http://codex.wordpress.org/Function_Reference/query_posts您是否在主循環中使用它? – Mihai