的幾個問題你的方法:
你不要逃避你的數據 - 在wpdb
類有這樣做對你的方式,確保你使用它們。
下面是你的查詢將被改寫,以逃避player_id
與$wpdb->prepare():
$myrows = $wpdb->get_results($wpdb->prepare(
"SELECT * FROM {$wpdb->prefix}pods_player_ranking
WHERE player_id=%s", $playerId));
的另一件事是,你試圖使用一個變量,它實際上是一個數組PHP的mysql*
功能($wpdb->get_results()
回報一個數組而不是一個mysql_result
)。
另外,如果您只希望查詢得到一個結果,則可以使用$wpdb->get_row()
- 因爲它將直接以您指定的格式返回該行。以下是如何將看起來像:
$row = $wpdb->get_row($wpdb->prepare(
"SELECT * FROM {$wpdb->prefix}pods_player_ranking
WHERE player_id=%s", $playerId), OBJECT);
到get_row
函數的第二個參數是這三個之一:
- 對象 - 這個返回結果爲
stdClass
的實例 - 一個簡單對象
- ARRAY_A - 這將返回結果作爲關聯數組(其列名是鍵)
- ARRAY_N - 這將返回結果作爲數字索引數組。
我還將pods_player_ranking
之前的文本替換爲{$wpdb->prefix}
,因爲我認爲這是您的表格前綴。使用wpdb的prefix屬性是一個好習慣,而不是對前綴進行硬編碼(如果您編寫的代碼將被多個站點使用,那麼當前綴不同時,您可能會遇到代碼無法工作的問題)。
,我會建議的最後一件事是使用調試(添加到您的wp-config.php文件:define('WP_DEBUG', true);
)當你正在開發一個新的網站,或開發新的特性。有時候,這可能使其很難/無法瀏覽網站(如果該插件或主題代碼會產生大量的通知/錯誤信息),所以你可以使用此代碼來代替:只要添加
if (isset($_GET['debug'])) {
define('WP_DEBUG', true);
}
這樣?debug
添加到當前URL,您將啓用顯示調試消息。
的一點是,如果你啓用調試過,你會最有可能看到這樣的錯誤:
Warning: mysql_num_rows() expects parameter 1 to be resource, array given in /path/to/file.php