2012-05-13 137 views
2
$query2 = "SELECT * FROM wp_posts WHERE post_status = 'publish'"; 
$result2 = mysql_query($query2); 
if (!$result2) { 
 die('Invalid query: ' . mysql_error()); 
} 

if (mysql_numrows($result2) == 0) { 
    echo("zero"); 
} else { 
    echo(mysql_numrows($result2)); 
} 

..花了一個小時就這一點,它應該工作,但它沒有,不知道我要去哪裏錯了。WordPress的MySQL查詢失敗

感謝

+0

應該使用類WPDB與數據庫通信... HTTP:/ /codex.wordpress.org/Class_Reference/wpdb,加上你的查詢應該與標準的wp_query一起工作 - http://codex.wordpress.org/Class_Reference/WP_Query – Elliott

+0

不,這不是在wordpress內部,它用於其他目的。 – 3zzy

+2

「這不起作用」非常含糊。 *如何*不起作用?並且查詢'SELECT COUNT(*)AS counter'會比這更有效率。 – DCoder

回答

2

重。你的評論:調用未定義函數die()

看起來你可能在你的die()語句之前的空白字符中有一些非ASCII字符。嘗試刪除該空格並重新插入,也許你會發現數據庫的錯誤是什麼

0

你應該使用這樣的查詢

$querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish'"; 
$pageposts = $wpdb->get_results($querystr, OBJECT); 

應該使用類WPDB與數據庫進行通信......

-1

試試這個:

$query2 = "SELECT * FROM wp_posts WHERE post_status = 'publish'"; 
$result2 = mysql_query("$query2"); 

查詢雙引號。

查詢中不包含雙引號,查詢將看起來像:

$result2 = mysql_query(SELECT * FROM wp_posts WHERE post_status = 'publish'); 

相反的:

$result2 = mysql_query("SELECT * FROM wp_posts WHERE post_status = 'publish'"); 
+0

請重新閱讀PHP手冊。 – DCoder