2011-11-08 94 views
0

我在指向Wordpress中的數據庫時遇到問題。我試圖包含全局$ wpdb,它不起作用。而且我也爲PHP編寫了wp-load.phpwp-db.php,wp-config.php,但仍然沒有解決。

它說,

Fatal error: Call to a member function get_results() on a non-object in C:\xampp\htdocs\wordpress\wp-content\themes\cv_test\searchresult_details.php on line 47

對不起,我在WordPress的發展初學者。任何幫助表示讚賞。謝謝。

include_once('http://localhost/wordpress/wp-config.php'); 
include_once('http://localhost/wordpress/wp-load.php'); 
include_once('http://localhost/wordpress/wp-includes/wp-db.php'); 

function retrieveClientDesc() 
{ 
    global $wpdb; 

    $query = "SELECT client_desc FROM wp_client WHERE client_name = 'Cal'"; 
    $result = $wpdb->get_results($query, OBJECT); 



    for($i = 0; $i<=count($result); $i++) 
    { 
     $clientDesc = ($result[$i]->client_desc); 
     echo $clientDesc; 
    } 

    print_r($result); 
} 

這是代碼的一部分。它一直說我的$結果部分有一個致命的錯誤。

+0

您可以在這裏放置您的代碼嗎? –

+0

嗨,Merianos,代碼添加。 – crank

回答

0

global $wpdb;替換爲$wpdb = new WPDB;。 wpdb對象尚未啓動。

+0

對不起,看起來像代碼不工作。 致命錯誤:未在C:\ xampp \ htdocs \ wordpress \ wp-content \ themes \ cv_test \ searchresult_details.php中找到類'WPDB' – crank

+0

請再次檢查您的'wp-db.php'路徑。我從來沒有試過包含文件的方式,但是請嘗試使用像'../../../ wp-includes/wp-db.php'這樣的相對路徑(也許你必須修改我的例子) - ***編輯:***或看看Michiel的回答。 – sascha

2

我曾經遇到過這個問題,這就是我能夠解決的問題。

global $wpdb, $table_prefix; 

if(!isset($wpdb)) 
{ 
    //the '../' is the number of folders to go up from the current file to the root-map. 
    require_once('../../wp-config.php'); 
    require_once('../../wp-includes/wp-db.php'); 
} 
+0

讓我試試。謝謝。 – crank

+0

嗯......再次看起來像是同樣的問題。 php文件位於我當前激活的主題文件夾中。然而,全局$ wpdb可以用在我的search.php中,但不是這個文件。 – crank

+0

你什麼時候需要這個功能? (在什麼點和如何),你確定你包含在正確的位置的文件? (相對於根目錄導航,然後包含文件) –

1

感謝各位的幫助。管理解決這個問題。

include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-load.php'); 
+0

祝賀修復。如果可以,請接受您的答案,以使其他人更容易從您的解決方案中學習。乾杯〜 –