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

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

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

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

PHP

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

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

Q&A

解決済

2回答

2096閲覧

PHPでMySQLに接続できません。

dreamers

総合スコア61

MySQL

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

PHP

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

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

0グッド

1クリップ

投稿2019/04/08 12:02

編集2019/04/08 12:19

当方、初心者です。
ご教示のほど宜しくお願い致します。

前提・実現したいこと

下記をレンタルサーバーでそのまま実装しようとしています。 [https://developers.google.com/maps/solutions/store-locator/clothing-store-locator](https://developers.google.com/maps/solutions/store-locator/clothing-store-locator) 上記手順通り、全て設定したのですが、実行し、chromeのデベロッパツールでみると、PHPでMySQLに接続できていないようでした。

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

<エラー内容> PHPでMySQLに接続できていないか、確認のため下記URL入力。 URL入力:   https://YYY/storelocator.php ブラウザに表示されるエラー:   Warning: mysql_connect(): No such file or directory in home/YYY/app/webroot/storelocator.php on line 12   Not connected : No such file or directory

該当のソースコード

「phpsqlsearch_dbinfo.php」(データベース接続情報)を、「storelocator.php」に取り込んでデータベースに接続しに行くのですが、接続できずエラーになります。   ※上記両方のphpとも、webrootフォルダ下に設置しています。    (さくらレンタルサーバー、PHP 5.6.40、でサイトを作り実行) <設定内容> usernameをhoge,passwordをfuga,database名をsampledb とします。 上記本文説明とおり、 ■phpsqlsearch_dbinfo.phpを <?php $username="hoge"; $password="fuga"; $database="hoge-sampledb"; ?>   ※上記本文説明例   <?php   $username="username";   $password="password";   $database="username-databaseName";   ?> ■storelocator.phpは説明本文例そのままで、 <?php require("phpsqlsearch_dbinfo.php"); // Get parameters from URL $center_lat = $_GET["lat"]; $center_lng = $_GET["lng"]; $radius = $_GET["radius"]; // Start XML file, create parent node $dom = new DOMDocument("1.0"); $node = $dom->createElement("markers"); $parnode = $dom->appendChild($node); // Opens a connection to a mySQL server **$connection=mysql_connect (localhost, $username, $password);//←12行目 if (!$connection) { die("Not connected : " . mysql_error()); }** // Set the active mySQL database $db_selected = mysql_select_db($database, $connection); if (!$db_selected) { die ("Can\'t use db : " . mysql_error()); } // Search the rows in the markers table $query = sprintf("SELECT id, name, address, lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20", mysql_real_escape_string($center_lat), mysql_real_escape_string($center_lng), mysql_real_escape_string($center_lat), mysql_real_escape_string($radius)); $result = mysql_query($query); $result = mysql_query($query); if (!$result) { die("Invalid query: " . mysql_error()); } header("Content-type: text/xml"); // Iterate through the rows, adding XML nodes for each while ($row = @mysql_fetch_assoc($result)){ $node = $dom->createElement("marker"); $newnode = $parnode->appendChild($node); $newnode->setAttribute("id", $row['id']); $newnode->setAttribute("name", $row['name']); $newnode->setAttribute("address", $row['address']); $newnode->setAttribute("lat", $row['lat']); $newnode->setAttribute("lng", $row['lng']); $newnode->setAttribute("distance", $row['distance']); } echo $dom->saveXML(); ?>

試したこと

■phpsqlsearch_dbinfo.phpの$databaseを変更しましたが、結果は同じでした。 <?php $username="hoge"; $password="fuga"; $database="sampledb"; ?> ■storelocator.phpの12行目のlocalhostを'localhost'に変更しましたが、結果は同じでした。 <?php require("phpsqlsearch_dbinfo.php"); // Opens a connection to a mySQL server **$connection=mysql_connect ('localhost', $username, $password);//←12行目 if (!$connection) { die("Not connected : " . mysql_error()); }**

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

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

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

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

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

m.ts10806

2019/04/08 12:10

直接関係はないかもしれませんが、mysql_*の関数はPHP5.5で非推奨となりPHP7では削除された機能です。 https://www.php.net/manual/ja/function.mysql-connect.php 現在のPHPのバージョンは幾つでしょうか? mysqli_*への書き換えもありますが、PDOのほうがベターです。
m.ts10806

2019/04/08 12:32 編集

Google提示のものとはいえあくまで一番正しいのはPHPマニュアルです。ロジックのみ注視して中身のコード仕様が古いとかよくあります。 phpのバージョン確認については phpinfo(); 実行してみてください。 キーとなるのはPHPのバージョンです。 ただ、セキュリティ上の理由でmysql_*は使わない方が良いです。 関連質問:https://teratail.com/questions/59503 ※そもそもPHP5系最後の5.6もサポート終了しているのでphpのバージョンも社内利用のみとか、保守案件以外ではPHP7.1以降を使うべきです。
guest

回答2

0

このエラーはMySQLに接続する際によくみかけるものです。基本的には、UNIXソケットのファイル名が見つからないというエラーです。

そもそも、さくらのレンタルサーバーで、MySQLのホストは localhost でよいのでしょうか。以下の質問の回答を読むと、違うホストのように見えますが。

PHP - さくらレンタルサーバー上でのPHP処理でmySQLにPDO接続できない。|teratail

レンタルサーバー側の設定をマニュアル等で確認することをお勧めします。

投稿2019/04/08 12:54

ockeghem

総合スコア11705

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

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

dreamers

2019/04/08 13:10

ありがとうございます。確認してみます。
dreamers

2019/04/09 09:48

mts10806 さんが指摘された古いmysql_*の関数をmysqli_*関数を使うと、問題解消されたみたいです。 (mts10806 さんごめんなさい、おすすめのPDOよりmysqliのほうがわかりやすかったので、、、今後PDOも勉強しようと思います) ただ、あらたにエラーが出て、https://teratail.com/questions/183624?modal=q-comp で質問しています。
guest

0

ベストアンサー

レンタルサーバーなのでホスト外部にありますよね。
localhostではないことは明らかだと思います。

投稿2019/04/09 07:13

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問