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

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

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

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

WordPress

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

PHP

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

Q&A

解決済

5回答

725閲覧

PHPでデータベースにアクセスしデータを取得するやり方がわかりません

akitasoran

総合スコア20

phpMyAdmin

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

WordPress

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

PHP

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

1グッド

0クリップ

投稿2017/09/03 08:19

###前提・実現したいこと
WordPressの固定ページにPHPでデータベースにアクセスしデータを出力したいと思っています。
固定ページにPHPを書き込むことはショートコードを使用することでクリアしています。
表示されたエラーメッセージについて調べてみると、SQL文の書き方にミスがあるらしいのですが、いくら修正をしてみても解決しません。どこを修正すれば良いのでしょうか?回答よろしくお願い致します。

###発生している問題・エラーメッセージ

接続成功 クエリーが失敗しました。 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"wp_options" WHERE option_id >= 5' at line 1

###該当のソースコード

try{ $my_Con = mysql_connect("localhost","[user]","[pass]"); if($my_Con == false){ echo '接続失敗<br/>'; }else{ echo '接続成功<br/>'; } $query = 'SELECT option_name FROM "wp_options" WHERE option_id >= 5'; $result = mysql_query($query, $my_Con); if(!$result){ die('クエリーが失敗しました。<br/>'.mysql_error()); }

###試したこと
(1)修正箇所

SELECT option_name FROM wp_options WHERE option_id >= 5

エラーメッセージ

接続成功 クエリーが失敗しました。 No database selected

(2)修正箇所

SELECT "option_name" FROM "wp_options" WHERE "option_id" >= 5

エラーメッセージ

接続成功 クエリーが失敗しました。 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"wp_options" WHERE "option_id" >= 5' at line 1
MasahikoHirata👍を押しています

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

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

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

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

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

MasahikoHirata

2017/09/04 15:38

フォローありがとうございます。いい質問と思いますが。特に初心者で周りに聞く人が居なければ。評価させて頂きます。
guest

回答5

0

ベストアンサー

普通ダブルクォートで囲むと文字リテラルとして扱われるので、データベースではエラーになりますから、構文的には「(1)修正箇所」が一番正しいと思います。
で、「データベースが選ばれてないよ!」ってエラーが帰ってきてますから、単純にアクティブにするデータベースを選択してあげればいいのでは?

PHP

1$my_Con = mysql_connect("localhost","[user]","[pass]");

の後に、

PHP

1mysql_select_db("your_db_name", $my_Con);

これでそれ以降のmysql_query()は全て選択されたアクティブなデータベース上で実行されることになります。(your_db_nameはあなたの利用しているデータベース名に変更してくださいね)

【補足】
コメントにもありましたが「普通ダブルクォートで囲むと文字リテラルとして扱われる」と書いたのは私のミスです。
多くのRDBMSでは普通にダブルクォート使ってましたね(恥)
むしろ文字リテラルとして扱われるのはシングルクォートの場合でしたね・・・
MySQLではバッククォートなんかも使いますから、ほんとMySQLはちょっと異端だと思います。
ちょっと質問の内容とずれますが、「-」(ハイフォン)を表名や列名に使う場合、ダブルクォートで囲まないと、SQL文では減算と解釈されますから、ダブルクォートで囲むことで、記号なども名前に使用することもできます。
お勧めはしませんけどね( ̄▽ ̄;)

投稿2017/09/03 08:51

編集2017/09/04 06:54
urdapple

総合スコア83

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

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

Tomak

2017/09/03 10:54

この回答が「低評価」になってますが、ちょっと厳しすぎる気がします。間違いに気づいたら、コメントで知らせるのが良いと思います。
退会済みユーザー

退会済みユーザー

2017/09/03 11:04

なんか間違ってるんですかね?mysql_ 関数はよくわからん。
退会済みユーザー

退会済みユーザー

2017/09/03 13:46 編集

> 普通ダブルクォートで囲むと文字リテラルとして扱われるので が、間違っていて、下げたのは、勿論、僕です。理由は、他で “沢山” 説明しています。 MySQLだけがデータベースじゃないし、MySQLのSQLだけがSQLじゃないです。
退会済みユーザー

退会済みユーザー

2017/09/03 13:50

補足しますが、寧ろ、MySQL こそが、異端です。その辺のところを教えなくて、何が回答ですか?
退会済みユーザー

退会済みユーザー

2017/09/04 09:39

そうです、そうやって、自分の間違いを素直に認める事こそが、技術者たる証です。 ですから、評価を戻します。
guest

0

データを取るだけなら以下で良いかと…
$query = $wpdb->get_results( 'SELECT option_name FROM wp_options WHERE option_id >= 5');

投稿2017/09/03 09:23

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

せっかくなので、私も回答を書きます。

まず、大前提

WordPress では テーブル操作用の関数が用意されているので、それを使うのが正しいです。
素の PHP で対応することは、将来のバージョンアップ対応やメンテナンスで、非常にイレギュラーな扱いをしなければならなくなるので、極力避けるべきです。
今回の回答の中では、ay03 さんが WordPress 内で使うべき関数を使用した具体的な方法を提示してくれているので、参考にすると良いです。

また、今回使用している、mysql_connect は、PHP 5.5.0 より非推奨となっている関数なので、素の PHP で書くにしても、現在は避けるべき関数です。質問には PHP のバージョン明記はありませんが、WordPress を使用しているサーバであれば、PDO や MySQLi が使用できると思いますので、そちらを使用してください。

syntax error に関して

やっと、今回の質問内容への回答となりますが、syntax error を出しているのは、テーブル名を「ダブルクオート」で囲ったことが原因です。
「(1)修正箇所」で実はすでに切り分けが出来ているのですが、MySQL の SQL 文として、テーブル名を「ダブルクオート」で囲むことは許されていません。
(厳密には設定されたモードにもよるので、時間のある時に以下のマニュアルを参考にしてください。
9.2 スキーマオブジェクト名 - MySQL マニュアル
こちらのページには、テーブル名を引用符で囲む場合と囲まない場合の違いも記述が有るので合わせて確認しておくと良いです。)

今回のケースでは、テーブル名を引用符「バッククォート」で囲むか、引用符を無くすかすることで、syntax error を無くすことが出来ます。

もう一つの error

本来であれば、「(1)修正箇所」で切り分けが出来ているのですが、この中でも error が出ているため、混乱してしまったようですね。惜しいw
urdapple さんが回答しているように、メッセージを素直に読むと、「データベースが選ばれてないよ!」ってエラーなので、それに対応することで、対処は完了します。

ようするに

今回のケースでは、wpdb を使用し、SQL 文の構文を修正するのが、WordPress を使用する上で最も適切な対応になります。

投稿2017/09/05 01:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2017/09/05 11:07

後付けでそんな事力説されても説得力ないです。アホらしいので低評価はしませんが、後で自分で見直して恥かしい投稿とかは、自分を貶めるだけなのでやめた方が良いと思います。
退会済みユーザー

退会済みユーザー

2017/09/05 11:28

なんで lucker さんに噛みつかれたんだろ^^; ベストアンサーが変わったことで、「WordPressであれば内部の関数を使用する」ってことが希薄になったことと、「mysql_connect を使用した内容がベストアンサーになっている」って流れがあまり良いと感じなかったため、新たに回答を作成しました。 間違っている箇所があれば、普通に指摘していただけると、修正対応しますよ^^
退会済みユーザー

退会済みユーザー

2017/09/05 11:42

> なんで lucker さんに噛みつかれたんだろ^^; ええぇぇぇ… あなた、僕の回答にどれだけ、「貴方の言うところの噛み付き」してたんですか? 本当に訳分からん人だな。 >間違っている箇所があれば、普通に指摘していただけると、修正対応しますよ^^ 修正してほしのは貴方の回答じゃなくて、貴方の良心です。
guest

0

もー… 回答者全員、何いってんだか意味がわからないんですが、

You have an error in your SQL syntax:

って書いてあるんだから、シンタックスエラーに決まってんじゃないですか。

SQL

1SELECT option_name FROM "wp_options" WHERE option_id >= 5

ですけど、phpmyadmin のタグついてるってことは、DB は MySQL なんでしょ?

何て呼ぶのか忘れましたけど、MySQL のテーブル名およびフィールド名を区切る記号はダブルクオートじゃなくてバッククオートです。これ。

SQL

1`

ダブルクオートは PostgreSQL。

本当に全員、もっと真面目にやってください。

投稿2017/09/03 10:05

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2017/09/03 10:08

ほら、あっちにベストアンサーついてるし… このサイト、本当にどうなってんですか? 一体…
退会済みユーザー

退会済みユーザー

2017/09/03 10:15

あー、わかった、“識別子” だ。って、んなこたぁ、この際どうでもいいや。
退会済みユーザー

退会済みユーザー

2017/09/03 10:29

その切り分け、(1)修正箇所 で終わってますよ。 それでもエラー出てるね、ていうのが urdapple さんの回答で、それを前提にみんな回答しています。 WordPress に用意された DB 用の関数使用するってことを BA に選ぶのも普通かと。
退会済みユーザー

退会済みユーザー

2017/09/03 10:33

これは失礼しましたって言いたいところですが、 だって、質問者、最後の最後まで syntax error 出してるじゃないですか。 その事、誰か指摘しましたか?
退会済みユーザー

退会済みユーザー

2017/09/03 10:54 編集

で、(1)修正箇所の結果が No database selected でしたっけ? それが原因ならなんで、最初に > 接続成功 > クエリーが失敗しました。 > You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"wp_options" WHERE option_id >= 5' at line 1 ってメッセージが出現しうるんですか?
退会済みユーザー

退会済みユーザー

2017/09/03 11:02

修正箇所って質問にあるから誤解したんですかね? 修正箇所っていうより、質問前に質問者が実施した切り分けと結果を記述しています。 その記述を前提に、urdapple さんが syntax error の原因を指摘しています。 Tomak さんも正解の構文に関しては((1)修正箇所が正解です)サラッと触れています。 ay03 さんの回答は、その前提で WordPress で実装するならどうするかって回答ですね。
退会済みユーザー

退会済みユーザー

2017/09/03 11:15

「普通ダブルクォートで囲むと文字リテラルとして扱われるので」←この認識は間違いですよね? SQL ですよ? PHP的にはシングルクオート内に書かれてるんですよ? 「質問のコード(1)修正箇所が正解です」←予約語と同じ識別子の場合どうするんですか? 「ay03 さんの回答は、その前提で WordPress で実装するならどうするかって回答ですね。」←つまり、質問者技術向上云々より、対症療法だって言いたいわけですね。 あなたはいろいろと、何いってんだかわからないです。
退会済みユーザー

退会済みユーザー

2017/09/03 11:26

> 「普通ダブルクォートで囲むと文字リテラルとして扱われるので」←この認識は間違いですよね? SQL ですよ? PHP的にはシングルクオート内に書かれてるんですよ? SQL文の中で、ダブルクォートで囲むと、文字リテラルとして扱われる認識です。普通と書いたのは、「ANSI_QUOTES モード」を意識した回答かと。 > ←予約語と同じ識別子の場合どうするんですか? 今回、予約語ではないです。 > ←つまり、質問者技術向上云々より、対症療法だって言いたいわけですね。 むしろ、WordPress を使用する上での技術向上だと思いますよ。
退会済みユーザー

退会済みユーザー

2017/09/03 11:47 編集

あのね、あなたのその場しのぎの言い訳を聞きたいわけじゃないです。 本当にそれ、自信を持ってあなたの矜持を元に言ってるんですか? 「今回、予約語ではないです。」とか。 だとしたら、あなたの発する言葉は聞く価値があるとは思えない。
退会済みユーザー

退会済みユーザー

2017/09/03 11:55

私も論点をずらされてもちょっとって感じです。 > SQL文の中で、ダブルクォートで囲むと、文字リテラルとして扱われる認識です。普通と書いたのは、「ANSI_QUOTES モード」を意識した回答かと。 こちらの認識が間違っているという指摘が元々の内容だと思いますが、どのようにお考えでしょうか?
退会済みユーザー

退会済みユーザー

2017/09/03 12:31 編集

どのようにお考えでしょうかもなにも「間違いですよね?」と考えていると言ったとおりです。論点もずらしていないです。 間違いでないなら、論拠を示してください。 > 「普通ダブルクォートで囲むと文字リテラルとして扱われるので」 ---------------------------------------------------------------- MySQL uses ' or " to quote values (i.e. WHERE name = "John"). This is not the ANSI standard for databases. PostgreSQL uses only single quotes for this (i.e. WHERE name = 'John'). Double quotes are used to quote system identifiers; field names, table names, etc. (i.e. WHERE "last name" = 'Smith'). http://wiki.postgresql.org/wiki/Things_to_find_out_about_when_moving_from_MySQL_to_PostgreSQL ---------------------------------------------------------------- > こちらの認識が間違っているという指摘が元々の内容だと思いますが どうしてそれに限定したと思ったんですか? あなたの言っていることは意味がわからないです。
退会済みユーザー

退会済みユーザー

2017/09/03 12:52

MySQL の識別子は、以下の通り表現されます。 https://dev.mysql.com/doc/refman/5.6/ja/identifiers.html > 識別子は引用符で囲むことも囲まないこともあります。(中略)識別子引用符文字は逆引用符 (「`」) です。(サンプル略)ANSI_QUOTES SQL モードが有効になっている場合、二重引用符内で識別子を引用符で囲むことも許可されています。 つまり、識別子を囲む引用符は「なし」「バッククォート」「ダブルクオート」である必要がありますが、「ダブルクオート」を使用する場合は、ANSI_QUOTES SQL モードであることと条件がつくため、普通は「なし」「バッククォート」が使われます。 同じページに以下の記述があります。 > ANSI_QUOTES モードでは、サーバーは二重引用符で囲まれた文字列を識別子として解釈します。この結果、このモードが有効になっているときには、文字列リテラルは単一引用符で囲む必要があります。二重引用符で囲むことはできません。 直接的な表現ではありませんが、ANSI_QUOTES モードでない場合、二重引用符で囲まれた文字列は文字リテラルとして扱われると読めます。
退会済みユーザー

退会済みユーザー

2017/09/03 12:56

だれが、「MySQL」と限定してあなたの支持する主張を発言したのですか? そんなこと、言わなきゃ解りませんか?「普通」って言葉の意味、知っていますか? 言ったじゃないですか、「あなたのその場しのぎの言い訳を聞きたいわけじゃないです。」って。 人はエスパーじゃないから、書いてある文章のとおりにしか文章を読まないです。 >「普通ダブルクォートで囲むと文字リテラルとして扱われるので」←この認識は間違いですよね? SQL ですよ? PHP的にはシングルクオート内に書かれてるんですよ?
退会済みユーザー

退会済みユーザー

2017/09/03 12:57

>> こちらの認識が間違っているという指摘が元々の内容だと思いますが > どうしてそれに限定したと思ったんですか? これに対する返答、どうしたんですか?
退会済みユーザー

退会済みユーザー

2017/09/03 13:07

mysql_connect 使って接続は成功しているので MySQL 使ってると判断できます。 lucker さんは別の DB である可能性も考えていたんですね。 普通は mysql_connect 使って接続が成功すれば DB は MySQL です。 なので、他の方の回答は、MySQL を DB として使用することを前提として記述されています。 DB が MySQL だったとして、 > SQL文の中で、ダブルクォートで囲むと、文字リテラルとして扱われる認識です。普通と書いたのは、「ANSI_QUOTES モード」を意識した回答かと。 ここ以外の箇所で指摘された箇所があるということですがどこでしょうか? 文脈からこちらしか指摘箇所があるようには思えませんでした。
KiyoshiMotoki

2017/09/03 13:17

lucker様 横から失礼します。 > で、(1)修正箇所の結果が > No database selected > でしたっけ? > > それが原因ならなんで、最初に > > > 接続成功 > > クエリーが失敗しました。 > > You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"wp_options" WHERE option_id >= 5' at line 1 > > ってメッセージが出現しうるんですか? について、私の手元の環境(MySQL5.7)でデフォルトのデータベースを選択しない状態で質問文のような 「識別子を "" で囲った SQL文」 を実行すると、  You have an error in your SQL syntax: と表示されました。 mysql> \s -------------- mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper Connection id: 4 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.7.18 MySQL Community Server (GPL) Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 2 min 27 sec Threads: 1 Questions: 8 Slow queries: 0 Opens: 105 Flush tables: 1 Open tables: 98 Queries per second avg: 0.054 -------------- mysql> SELECT * FROM "no_such_table"; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"no_such_table"' at line 1 どうやら MySQL は、 「SQL文を実行するデータベースが指定されていない」 ことより先に 「構文エラー」 でエラーを発する仕組みになっているようです。
退会済みユーザー

退会済みユーザー

2017/09/03 13:18

> lucker さんは別の DB である可能性も考えていたんですね。 「普通」という言葉のみを用いて SQL を語る時は、SQLにおける普通と考えるのが適切です。 MySQLしか使った事のない人の事なんかしらないです。
退会済みユーザー

退会済みユーザー

2017/09/03 13:22

> KiyoshiMotoki さん ありがとうございます。そういうレスポンスが「意味のある情報」です。 僕は最近 PHP も DB もとんと離れていて、あらたにコードを書いてテストするのが億劫でしたのでしませんでしたが、とりあえず、syntax error だと言っているのにダブルクオートについて誰も何一つ指摘しない事に懐疑を抱いただけです。 いろいろと狂っているんですよ、ここの回答は。 あなたには感謝します。
退会済みユーザー

退会済みユーザー

2017/09/03 13:31

長かったですね。やった理解できました。 MySQL を DB として使用していることを前提に皆が回答しているってことが、理解できなかったことが原因ですね。 ちなみに、lucker さんの回答の以下は不適切です。 > 何て呼ぶのか忘れましたけど、MySQL のテーブル名およびフィールド名を区切る記号はダブルクオートじゃなくてバッククオートです。これ。 マニュアルに有るように、「なし」「バッククォート」が適切で、「ANSI_QUOTES モード」の場合は、ダブルクオート(つまり今回の件)でも問題ないです。
退会済みユーザー

退会済みユーザー

2017/09/03 13:33

だーから、「なし」は予約後に対応できないし、モードはどの環境でも一緒じゃないって事が分からん人は、何言っても説得力ないです。
退会済みユーザー

退会済みユーザー

2017/09/03 13:35

> (つまり今回の件)でも問題ないです。  だーから、だったら、どこに syntax error があったのか明言してください。 SQL のエラーは大抵、その場所そのものじゃなくて、問題箇所以降を指し示す事が多いので、エラーをみっけるのが大変なんです。そのくらい知ってるでしょう? 仕事しているのなら。 言ってみなさいよ、どこが syntax error だったのか。
退会済みユーザー

退会済みユーザー

2017/09/03 13:36

> te2ji さん 言ったでしょう? 「あなたのその場しのぎの言い訳を聞きたいわけじゃないです。」って。
退会済みユーザー

退会済みユーザー

2017/09/03 13:42

> だったら、どこに syntax error があったのか明言してください。 MySQL に使用する SQL でテーブル名を「ダブルクオート」で囲ってしまったことが原因です。
退会済みユーザー

退会済みユーザー

2017/09/03 13:44

ごめんなさいね、さすがにイライラしてきたので言いますが、 だったらなんであんたはさっきからグダグダと言い訳ばっかしてんの? 貴方の中では、貴方のしていることは筋が通っているの?
退会済みユーザー

退会済みユーザー

2017/09/03 13:49

lucker さんが何を指摘したかったのか理解したかっただけです。 urdapple さんの評価が下がった理由が知りたかったってのもあります。 マイナス評価の理由書かせるのってけっこう大変なんですよ。 結局、皆が MySQL を前提に話を進めている中、一人だけ勘違いしちゃっただけのようですね。
退会済みユーザー

退会済みユーザー

2017/09/03 13:51

本当にそう思っているなら、それは価値があったという事でしょう。 技術者ってね、結局、自分を焼かないと成長しないんですよ。
退会済みユーザー

退会済みユーザー

2017/09/03 13:52

貴方が勘違いしたといっているのが、この期に及んで僕だと言っているなら、 貴方は救いようがないですけどね。
退会済みユーザー

退会済みユーザー

2017/09/03 13:52

ですから、彼は、明らかに、マイナスです。
MasahikoHirata

2017/09/04 15:40

内容を精査して良い答えと判断しました。評価させて頂きます。
退会済みユーザー

退会済みユーザー

2017/09/05 08:14 編集

アカウントのログ見ると、プラスの勢力とマイナスの勢力の攻防が繰り返されていて、結構楽しかったですよ。 正直、ここの評価がなにか自分の得になる事はなさそうなのでどうでもいいんですけど、少なくとも、「お前の言っていることは分かるが、お前のことが気に入らないから絶対に賛同しない」みたいな人は、技術者たる資格はないよなぁとは、思っています。
MasahikoHirata

2017/09/05 11:09

仕様を理解する前に評価って感じですね。
MasahikoHirata

2017/09/05 11:12

私はエンジニアでも畑違いのケミカル系ですが、経験から役立つノウハウのつもりで回答していますが、マイナス評価する方が得るものは何かが心配です。答えなくても良い回答で、しかも的を射ていればなおさら。貴殿の指摘は的確と理解してます。これだけは言いたい。
退会済みユーザー

退会済みユーザー

2017/09/05 11:47

エンジニアの精神に畑なんてないと思います。エンジニアに必要なのは民法第1条第2項に基づく、職務に対する信義だけです。誠実であること以上に、エンジニアに必要な要素は無いと考えます。
guest

0

PDOを使ったほうがいいと思いますが、そのままmysql_xxx()を使うのであれば下記のようにすればよいです。

データーベースにSELECT文で結果を受け取るには下記のようにします。
PDOなどでは下記の1.2.を同時に行うことができたりします。

  1. MySQLサーバーに接続(質問のコードでOK)
  2. データーベース選択(質問のコードにありません)
  3. SQLクエリ発行(質問のコード(1)修正箇所が正解です)
  4. SQLクエリの結果を受け取る

php

1try{ 2 $my_Con = mysql_connect("localhost","[user]","[pass]"); 3 4 if($my_Con == false){ 5 echo '接続失敗<br/>'; 6 }else{ 7 echo '接続成功<br/>'; 8 } 9 10 // データーベース選択 11 mysql_select_db('データーベース名', $my_Con); 12 13 $query = 'SELECT option_name FROM wp_options WHERE option_id >= 5'; 14 $result = mysql_query($query, $my_Con); 15 16 if(!$result){ 17 die('クエリーが失敗しました。<br/>'.mysql_error()); 18 }

投稿2017/09/03 09:17

Tomak

総合スコア1652

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

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

退会済みユーザー

退会済みユーザー

2017/09/03 09:21

WordPress なら、そもそも DB 操作の準備が出来ている気がします。 なんか関数用意されていそうな。。。
urdapple

2017/09/03 09:33

wpdb関数がありますね。 質問の内容とはちょっと違うので書きませんでしたが、CMS上で直接DB上にアクセスが必要なら、インジェクション対策的にもmysql_connectよりもPDOよりも、そのCMSに付随の関数を利用した方がいいでしょうね。
Tomak

2017/09/03 10:55

そーですね。wpdbのことも触れるべきでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問