2011-03-02 27 views
1

我一直在嘗試幾個小時,通過.ajax文章簡單地調用wordpress dbase中的表,然後返回我想要的值,但在返回的頁面上出現此錯誤:「調用到一個非對象的成員函數get_results()「。在wordpress數據庫中使用自定義表

這裏是我的PHP文件:

<?php 
global $wpdb; 


if (isset($_POST['state'])) { 
    $results=$wpdb->get_results("SELECT DISTINCT make FROM cz_cars ORDER BY make ASC"); 
    echo $results[0][0]; 

exit; 
} 

?> 

這裏是我使用jQuery:當我註釋掉PHP文件數據庫的東西


jQuery(document).ready(function() 
{ 

     jQuery("#caryear").change(function() 
     { 
      jQuery.ajax(
      { 
       type: "POST", 
       url: "wp-content/themes/storefront/includes/post-yearmakel.php",   
       data: ({ 'state' : jQuery("#caryear").val() }), 
       success: function(msg) 
       { 
        jQuery('#carmake').append('' + msg + ''); 
       } 
      }); 
     }); 

}); 

此代碼工作正常,只是回顯一個字符串。我有與其他包括的PHP文件,它被wordpress認可。不知道這裏發生了什麼......我認爲有全球$ wpdb;會使這項工作!

任何想法?

回答

1

聲明global僅在global範圍之外有意義。

第一個腳本沒有看到初始化的$wpdb。您需要include WordPress的發動機或至少部分設置$wpdb

+0

嗨!感謝回覆!沒有一個地方,我可以保存我的PHP文件,因此它有權訪問wp全局數據庫?我改變了我的PHP,所以它有<?php include「../../../../wp-includes/wp-db.php」; \t $ wpdb = new wpdb(「root」,「******」,「pro」,「localhost」);?>在裏面,但現在我得到錯誤:使用未定義的常量WP_DEBUG「。不能相信這是多麼的令人沮喪! – 2011-03-02 05:56:07

+0

np。不幸的是,WP並不是我的專長,但足以說明,WP創建了'$ wpdb' _somewhere_如果你不準備包含它創建的任何地方(CMS的can 。挑剔他們是如何允許包括他們自己的部分),你可以創建這個腳本的緣故自己一次性DB連接 – Shad 2011-03-02 06:03:58

+0

在這種情況下,我會建議創建自己的數據庫連接:'mysql_connect''mysql_select_db''mysql_query' Shad 2011-03-02 06:10:50

0

我不知道,如果這個問題已經回答了或沒有,但我相信你需要包括 wp-load.php文件。

它應該在wordpress root安裝。它會讓你訪問wp全局。

相關問題