2012-05-13 16 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)); 
} 

..これで1時間を費やしても動作するはずですが、どこが間違っているのかわかりません。Wordpress MySQLのクエリが失敗します

おかげ

+0

データベースとの通信にwpdbクラスを使用する必要があります...のhttp:/

クエリ内の二重引用符がないと、クエリは次のようになります/codex.wordpress.org/Class_Reference/wpdb、プラスあなたのクエリは、標準のwp_queryで動作するはずです - http://codex.wordpress.org/Class_Reference/WP_Query – Elliott

+0

はありません、これは別の目的のために外部からそれを使用して、内部のワードプレスではありません。 – 3zzy

+2

「それは動作しません」非常にあいまいです。 *どのように動作しませんか?また、SELECT COUNT(*)ASカウンタを照会する方が効率的です。 – DCoder

答えて

2

再。あなたのコメント:あなたはダイ()文の前に空白文字で一部の非ASCII文字があるかもしれないように見えます

)Â(死ぬ未定義の機能を呼び出します。その空白を削除し、それを再挿入してみて、多分あなたは、データベース・エラーが

0

あなたは、データベースとの通信にwpdbクラスを使用する必要があり、この

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

のようなクエリを使用する必要があります...

-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

関連する問題