2012-01-14 121 views
0

我有一個自定義表中調用由貝寶IPN添加到wp_purchases,它具有列POST_ID,purchase_id,用戶名,電子郵件和變化:

$user = $_POST['username']; 
$post_id = $post->ID; 
global $wpdb; 
$wpdb->purchases = $table_prefix . 'purchases'; 
$result = $wpdb->query("SELECT * FROM $wpdb->purchases WHERE username = $user AND post_id = $post_id"); 
if ($result) {... 

我只是想檢查是否有在一個.php主題頁面下以某個用戶名購買,然後執行與$result無關的操作。 雖然它不會工作,但我嘗試它的任何方式都會出現null。是否使用$wpdb->purchases或不包括某個文件或其他東西?我也試過get_resultsget_row,沒有運氣。

+0

您是否需要圍繞值添加引號(即user ='$ user')。如果有的話,你收到的錯誤是什麼?我有時只是將查詢回顯到頁面中,並直接在SQL服務器上嘗試它,看看我是否可以調整它,直到它工作。 – Silvertiger 2012-01-14 18:47:32

回答

1

試試這個:

$result = $wpdb->query("SELECT * FROM `".$wpdb->purchases."` WHERE username = '$user' AND post_id = '$post_id';"); 
0

什麼的username類型?我假設它存儲字符串數據。所以變量$user必須被引用:

"SELECT * FROM $wpdb->purchases WHERE username = \"$user\" AND post_id = $post_id"

+0

感謝您的追捕,但即使我遺漏了查詢的WHERE部分,它仍然沒有任何東西:( – 2012-01-14 18:58:48

+0

嗨。你有沒有試圖迴應你的查詢,而不是馬上執行它?嘗試像這樣的'$ sql =「SELECT * FROM $ wpdb-> purchases WHERE username = \」$ user \「AND post_id = $ post_id」; echo'
sql ='。$ sql。'
'; die();'然後嘗試執行它在phpmyadmin中,如果你得到的查詢是正確的,並且它沒有任何錯誤地執行,並且結果仍然是空的,那麼檢查你的表,也許它沒有包含滿足你的where條件的數據。 – 2012-01-15 18:39:49

1

我放棄了,只是用

$result = $wpdb->query("SELECT * FROM wp_purchases WHERE username = $user AND post_id = $post_id"); 

,因爲它是一個單一的網站,並不真正需要的表前綴,這將永遠是wp_

1

我知道這個答案太晚了,但我仍然會爲了其他也有類似問題的人發佈它。

你提到查詢仍然沒有返回任何東西,即使刪除WHERE部分之後,你是否試圖echo $ wpdb-> purchases變量?它可能只是返回一個字符串「購買」而不是「wp_purchases」(假設你的表前綴是「wp_」)。嘗試使用$ wpdb->前綴而不是$ table_prefix$ wpdb-> base_prefix如果您有多站點。

$wpdb->purchases = $wpdb->prefix . 'purchases';