PHPを使ったMysqlへの接続につまづいています。何が原因でエラーが発生してしまうのか憶測の範囲でしか分からない状態です。
<?php define('DB_DATABASE', ''); define('DB_USERNAME', ''); define('DB_PASSWORD', ''); define('PDO_DSN', 'mysql:dbhost=;dbname=' . DB_DATABASE); try { // connect $db = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // } catch (PDOException $e) { echo $e->getMessage(); exit; } ?>
上記のコードにユーザー名やデーターベース名、接続先のホスト名を入力し、ファイルとして保存。そのファイルをレンタルサーバーにアップロードし、ブラウザからアクセスすると以下のようなエラーが発生します。
コードはドットインストールからコピペしたコードで、自分が入力したのは定数の値だけ。またxamppを使って作ったローカル環境では同じコードでもエラーがなく実行出来たので、コードには間違いがないと思います。
また自分が入力した定数の値にもおそらく間違いがなく、なぜエラーが発生するのがよく分かりませんでした。
ただ、原因を探っていくうちに何となくの理由は掴めてきました。
上の画像はレンタルサーバーのウェブサイトから見れるMysqlの管理画面の一部です。ユーザーのホスト名が%ではなく、しっかりと指定されています。またレンタルサーバーの多くは外部からの接続が許されていないということもつい昨日知りました。
ユーザー名に書かれているホスト以外からはMysqlにアクセス出来ないので、エラーが発生していた。問題の解決をする為にはサーバー上のPHPからMysqlに接続すればよい。ということなのでしょうか。
正直内部アクセスや外部アクセスが具体的にどのようなものなのか全く分かりません。
質問をまとめると以下になります。
一番上に書いてあるコードを保存したファイルindex.phpをレンタルサーバーにアップロード。その後ブラウザからそのファイルにアクセス。この場合外部アクセスという形でMysqlに接続しているということなのでしょうか?
また、PHPがサーバー側で動く言語であるということは言葉としては知っているのですが、具体的なことはよく分かりません。この辺りのことについて教えて欲しいです。
追記
回答2件
あなたの回答
tips
プレビュー