質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

12215閲覧

wordpressデータベースエラー「Unknown column '○○○' in 'where clause'」の原因調査

pineappleman

総合スコア26

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2019/01/10 05:31

編集2019/01/10 07:42

前提・実現したいこと

プラグインのテーブルから数値を取り出したい。
key name等はすべて確認済。
前任者が作成したPHPを元に作成しているので、問題ないかと思ったのですが、なぜかうまくいきません。
※自分自身はhtml/cssの知識しかなかったので、なんとか勉強してきました。

該当のエラーコード

デバッグプラグイン「Query Monitor」で表示されたデータベースエラーがこちらです。

■クエリー SELECT count(*) FROM sample_posts WHERE post_status = 'flamingo-spam' AND post_type = 'flamingo_inbound' AND pm.meta_key = '_field_menu-123' - ■呼び出し元 get_template_part('name') wp-includes/general-template.php:155 locate_template() wp-includes/template.php:647 load_template('wp-content/themes/sample/name.php') wp-includes/template.php:690 - ■コンポーネント コア - ■Error Message Unknown column 'pm.meta_key' in 'where clause' - ■Error Code 1054

以上です。
自分ではエラーの意味を理解できなかったので、ご教示いただけますと幸いです。
呼び出し元のデータに該当部分があることはわかりましたが、どうすればよいのかがわかりません。
どうかお力添え下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/01/10 05:36

JOIN文とかがあったっぽい気がするんですが、編集なさってますか?もしくは編集前のコードが保存されていませんか?とりあえず"pm."を消せば動きそうな気もしないでもないですが。
pineappleman

2019/01/10 05:49

回答ありがとうございます。pm.を消しても治りませんでした...
pineappleman

2019/01/10 07:39

JOIN文を見つけて当てはめたところ、解決致しました! ありがとうございました。
guest

回答2

0

ベストアンサー

色々不明なので、推測だらけですが...

SELECT count(*)
FROM tamaran_posts
WHERE post_status = 'flamingo-spam'
AND post_type = 'flamingo_inbound'
AND pm.meta_key = '_field_menu-123'

SQL に pm テーブルがないので、エラーになりますね。

WordPress のデータベース構造から推測すると...

meta_key は、 postmeta にあるので、

SELECT count(*) FROM tamaran_posts, tamaran_postmeta as pm WHERE post_status = 'flamingo-spam' AND post_type = 'flamingo_inbound' AND pm.meta_key = '_field_menu-123'

だったりしますか?

http://wpdocs.osdn.jp/データベース構造 wp_postmeta

投稿2019/01/10 05:40

編集2019/01/10 05:42
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pineappleman

2019/01/10 05:53

ご回答ありがとうございます、FROMが違ったのですね。 試したところエラーでした。 以下のPHPが該当箇所です。 FROMのあと「$wpdb->」では違ってくるのでしょうか? <?php global $wpdb; $number = $wpdb->get_var(" SELECT count(*) FROM $wpdb->posts WHERE post_status = 'flamingo-spam' AND post_type = 'flamingo_inbound' AND pm.meta_key = '_field_menu-123' "); echo $number; ?>
pineappleman

2019/01/10 07:40

無事に解決致しました! ありがとうございました。
guest

0

クエリの呼び出し元が原因かと思っていましたが違いました。

原因はmySQLテーブルの結合をしていなかったためでした。

参考
https://teratail.com/questions/139748

基本的なミスだったことと思います。
基礎を理解してから考え直すことの大事さを思い知りました...

投稿2019/01/10 07:44

pineappleman

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問