0

wordpressを使用してWebサイト用に作成されたmysqlデータベースがあります。wordpressを使用してテキストを投稿すると、そのデータベースに保存されます。PHPファイルを使用してこのテキストを取得しようとすると、nullが返されますが、このテキストを削除して手動で(ワードプレスなしで)書き込むと、正常に取得されます。wordpress を使用して作成されたので、このテキストを取得するために何か特別なことをする必要がありますか? テーブルの構造は次のとおりです。フィールド: post_content タイプ: longtext。助けてくれてありがとう

コード:

$query = "SELECT post_content FROM meiplay_posts WHERE post_type = 'portfolio'";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
    $output[] = $row;
print(json_encode($output));
4

2 に答える 2

1

Wordpressには、データベースでクエリをより簡単に実行できるクラスがあります。参照:http ://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Column

試す:

$result = $wpdb->get_col($wpdb->prepare("SELECT `post_content` FROM `meiplay_posts` WHERE post_type = 'portfolio'")); 

if ($result) 
{
   echo $result->post_content;
   echo json_encode($result);
};
于 2012-07-06T02:53:54.763 に答える
1

エラー処理を追加します。

$result = mysql_query($query) or die(mysql_error());

これにより、で問題が発生した場合にエラーメッセージが出力されますmysql_query。うまくいけば、エラーメッセージが役立つでしょう。

また、のドキュメントにmysql_query次のように書かれています。

この拡張機能の使用はお勧めしません。代わりに、MySQLiまたはPDO_MySQL拡張機能を使用する必要があります。

したがって、PHPの作成者が推奨するライブラリを使用することをお勧めします。

また:

$query = "SELECT post_content FROM meiplay_posts WHERE post_type = 'portfolio'";

の列がpost_type = 'portfolio'存在することを確認しますか?パーツなしで選択を実行してみて、WHERE何かが得られるかどうかを確認してください。多分それは少し違う、のPortfolio代わりにportfolio

于 2012-07-06T01:15:44.653 に答える