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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

2回答

2837閲覧

phpでmysqlのDBのクエリでmysqlではなくMariaDBが呼ばれる

yamanoharu0129

総合スコア47

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2016/08/17 03:17

いつもお世話になっております。
現在、mySQLのDBに保存したKMLの情報を取得するチュートリアルをやっているのですが、以下のコードの←の部分でエラーが発生して先に進めません。

require('phpsqlajax_dbinfo.php');

1// Opens a connection to a MySQL server. 2 3$connection = mysql_connect ($server, $username, $password); 4 5if (!$connection) 6{ 7 die('Not connected : ' . mysql_error()); 8} 9// Sets the active MySQL database. 10$db_selected = mysql_select_db($database, $connection); 11 12if (!$db_selected) 13{ 14 die('Can\'t use db : ' . mysql_error()); 15} 16 17// Selects all the rows in the markers table. 18$query = 'SELECT * FROM "kmltest"'; 19$result = mysql_query($query);←この部分でエラーが発生している模様 20 21if (!$result) 22{ 23 die('Invalid query: ' . mysql_error()); 24}

エラー文は、
『Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"kmltest"' at line 1』
で、mySQLのDBからデータを取得しようとしているのに、MariaDBからデータを取得しようとしている、と捉えたのですが、どの部分を直せばMySQLから取得できるでしょうか?
PHPについて調べていく中で、MySQLからMariaDBに移行してきていて、新しいxamppのバージョンでは、セキュリティのページが消えていたりと初期の設定がし辛くなっていることがわかって、MariaDBに移行せざるを得ないという印象を受けました。
xamppのバージョンアップを試みて、設定が上手くいかなかったので、そのままMySQLを使っているのですが、MariaDBを使わなければならないのでしょうか?
現在のphpのバージョンは、5.6.3で、xasmppのバージョンは5.6.16で、xamppのコントロールパネルのバージョンは、3.2.2です。
ご教授お願いします。

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

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

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

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

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

guest

回答2

0

根本はそこじゃなくて、このエラーです。miyabi-sun様の仰る通り、mariaDBとmysqlは互換性があるので、何も問題ありません。

Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"kmltest"' at line 1

英文はこういうことです。syntaxとは構文のことです。
「SQL構文にエラーが発生しています。1行目に書かれている'"kmltest"'という文章に問題がないか、マニュアルを確認してください」

確認すると、テーブルに括弧を括っていますね。シングルクォートで括るのはSQL構文に挿入する外部からの文字(定数など)であり、SQLを構成する構文そのものにシングルクォートを括ってはいけません。

補足で、カラム名やテーブル名をそのまま表示させたい場合、ダブルクォートで括ります。

投稿2016/08/17 04:30

編集2016/08/17 04:36
FKM

総合スコア3633

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

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

yamanoharu0129

2016/08/17 05:57

miyabi-sun様、FKM様、返信ありがとうございます。 miyabi-sun様のおっしゃるとおり訂正したところ、再読み込みするとページのダウンロード画面が出ました。 ダウンロードして確認したところ、テストでページに表示させていた文字の下に、以下のコードが書かれていました。 77行目は、$placeNode->setAttribute('id', 'placemark' . $row['id']);という一文です。KMLは出力されているようですが、idだけが取得されてないということでしょうか?また何故いきなりダウンロード画面になるのかわかりません。 <b>Notice</b>: Undefined index: id in <b>C:\xampp\htdocs\phpsql_genkml.php</b> on line <b>77</b><br /> <br /> <b>Notice</b>: Undefined index: id in <b>C:\xampp\htdocs\phpsql_genkml.php</b> on line <b>77</b><br /> <br /> <b>Notice</b>: Undefined index: id in <b>C:\xampp\htdocs\phpsql_genkml.php</b> on line <b>77</b><br /> <br /> <b>Notice</b>: Undefined index: id in <b>C:\xampp\htdocs\phpsql_genkml.php</b> on line <b>77</b><br /> <br /> <b>Notice</b>: Undefined index: id in <b>C:\xampp\htdocs\phpsql_genkml.php</b> on line <b>77</b><br /> <br /> <b>Notice</b>: Undefined index: id in <b>C:\xampp\htdocs\phpsql_genkml.php</b> on line <b>77</b><br /> <br /> <b>Notice</b>: Undefined index: id in <b>C:\xampp\htdocs\phpsql_genkml.php</b> on line <b>77</b><br /> <br /> <b>Notice</b>: Undefined index: id in <b>C:\xampp\htdocs\phpsql_genkml.php</b> on line <b>77</b><br /> <br /> <b>Notice</b>: Undefined index: id in <b>C:\xampp\htdocs\phpsql_genkml.php</b> on line <b>77</b><br /> <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.1"><Document><Style id="restaurantStyle"><IconStyle id="restaurantIcon"><Icon><href>http://maps.google.com/mapfiles/kml/pal2/icon63.png</href></Icon></IconStyle></Style><Style id="barStyle"><IconStyle id="barIcon"><Icon><href>http://maps.google.com/mapfiles/kml/pal2/icon27.png</href></Icon></IconStyle></Style><Placemark id="placemark"><name>Pan Africa Market</name><description>1521 1st Ave, Seattle, WA</description><styleUrl>#restaurantStyle</styleUrl><Point><coordinates>-122.340141,47.608940</coordinates></Point></Placemark><Placemark id="placemark"><name>Buddha Thai &amp; Bar</name><description>2222 2nd Ave, Seattle, WA</description><styleUrl>#barStyle</styleUrl><Point><coordinates>-122.344391,47.613590</coordinates></Point></Placemark><Placemark id="placemark"><name>The Melting Pot</name><description>14 Mercer St, Seattle, WA</description><styleUrl>#restaurantStyle</styleUrl><Point><coordinates>-122.356445,47.624561</coordinates></Point></Placemark><Placemark id="placemark"><name>Ipanema Grill</name><description>1225 1st Ave, Seattle, WA</description><styleUrl>#restaurantStyle</styleUrl><Point><coordinates>-122.337654,47.606365</coordinates></Point></Placemark><Placemark id="placemark"><name>Sake House</name><description>2230 1st Ave, Seattle, WA</description><styleUrl>#barStyle</styleUrl><Point><coordinates>-122.345673,47.612823</coordinates></Point></Placemark><Placemark id="placemark"><name>Crab Pot</name><description>1301 Alaskan Way, Seattle, WA</description><styleUrl>#restaurantStyle</styleUrl><Point><coordinates>-122.340363,47.605961</coordinates></Point></Placemark><Placemark id="placemark"><name>Mama's Mexican Kitchen</name><description>2234 2nd Ave, Seattle, WA</description><styleUrl>#barStyle</styleUrl><Point><coordinates>-122.345467,47.613976</coordinates></Point></Placemark><Placemark id="placemark"><name>Wingdome</name><description>1416 E Olive Way, Seattle, WA</description><styleUrl>#barStyle</styleUrl><Point><coordinates>-122.326584,47.617214</coordinates></Point></Placemark><Placemark id="placemark"><name>Piroshky Piroshky</name><description>1908 Pike pl, Seattle, WA</description><styleUrl>#restaurantStyle</styleUrl><Point><coordinates>-122.342834,47.610126</coordinates></Point></Placemark></Document></kml>
yamanoharu0129

2016/08/18 03:35

上記のphpファイルのエラーですが、引っかかっている行のコード以前のidの指定が、DBではIdに、phpではidになっていたのが原因でした。また、phpを最後まで見直したところ、ダウンロード画面になるのは、 $kmlOutput = $dom->saveXML(); という一文があるからだとわかりました。最後までコードをよく見ていなかったせいでした。 ベストアンサーは、先に回答してくださったmiyabi-san様に付けさせていただきます。回答していただき、ありがとうございました。
guest

0

ベストアンサー

MySQLは2010年にOracle社に買収されました。
MariaDBはOracleのやり方に賛同出来ない人が新しく立ち上げたプロジェクトで、
普通に使う分には両者の違いを意識すること無く使う事が出来ます。

どうしてもMySQLを使いたい場合、XAMPPを諦めましょう。

それはそれとして、SQL文に誤りがあるので、下記を試してみてください。

PHP

1// 修正前 2$query = 'SELECT * FROM "kmltest"'; 3 4// 修正後 5$query = 'SELECT * FROM kmltest';

投稿2016/08/17 03:34

miyabi-sun

総合スコア21158

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

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

yamanoharu0129

2016/08/18 03:36

SQL文を修正して無事解決しました。 ベストアンサーとさせていただきます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問