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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

9265閲覧

[WordPress & PHP] Fatal error: Call to a member function query() on null

spellbound

総合スコア190

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/06/20 09:28

関数の定義

php

1 // DBに情報をインサートする関数 2 function insertDataToExamplesTable($data) { 3 extract($data); 4 $wpdb->query( 5 $wpdb->prepare( 6 " 7 INSERT INTO $wpdb->examples 8 ( 9 id, 10 ex_nm, 11 pref_nm, 12 area_nm, 13 latitude, 14 longitude, 15 ex_cd, 16 ex_sale_cd, 17 updated_at 18 ) 19 VALUES 20 ( 21 %s, 22 %s, 23 %s, 24 %s, 25 %s, 26 %s, 27 %s, 28 %s, 29 %s 30 ) 31 ON DUPLICATE KEY UPDATE 32 id = VALUES(id), 33 ex_nm = VALUES(ex_nm), 34 pref_nm = VALUES(pref_nm), 35 area_nm = VALUES(area_nm), 36 latitude = VALUES(latitude), 37 longitude = VALUES(longitude), 38 ex_cd = VALUES(ex_cd), 39 ex_sale_cd = VALUES(ex_sale_cd), 40 updated_at = VALUES(updated_at) 41 ", 42 array( 43 $id, 44 $exNm, 45 $prefNm, 46 $areaNm, 47 $latitude, 48 $longitude, 49 $exCd, 50 $exSaleCd, 51 $updatedAt 52 )) 53 ); 54 }

php

1 $acmData = array(); 2 $acmData = compact("id", "exNm", "prefNm", "areaNm", "latitude", "longitude", "exCd", "exSaleCd", "updatedAt"); 3 insertDataToExamplesTable($data);

質問したいこと

  • 何か間違っている点はありますか? 関数が実行できずに表題通りのエラーが発生しています。
  • 何度も名前が間違っていないかチェックしました。名前以外でミスしてそうな部分があればご指摘して頂けたら幸甚です。お願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

insertDataToExamplesTable() の中で使っている $wpdb が初期化されていませんから、
null オブジェクトに対して ->query() をやろうとしたって、「そんなの知りません」となって当然です。
まさに「Call to a member function query() on null」(null オブジェクトに対してメンバーファンクション query() をコールした)と言われてしまっています。

なので、まずは $wpdb をきちんと初期化するなり、他から渡してもらうなりしましょう。

投稿2017/06/20 09:34

tacsheaven

総合スコア13703

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

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

spellbound

2017/06/20 09:36

基礎的なことをもっともっと勉強しなければならないと感じました...。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問