ご利用前に必ずお読みください。
フォーラムTOP > Xfree(旧無料レンタルサーバー) > phpからMySQLへ接続できません

phpからMySQLへ接続できません

by しゃぼん玉さん (6394e43f)
投稿数:2回
(ベストアンサー:0回)
2017/09/14 10:32
初めてphpとMySQLを使用する初心者です。パソコン上のXAMPPでは問題なく動くことを確認したのち、Xdomain(無料プラン)へ移行したのですが、下記エラーがでました。phpのバージョンはPHP5.6.xです。

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@user.php.xdomain.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

インターネットで探してみたところ、下記の内容でチェックする方法があったので試してみたところ、「MySQL接続失敗」と表示されました。どこが悪いのかわからず困っております。どなたか教えていただけないでしょうか。よろしくお願いいたします。なお、ソース:ユーザー名、パスワード、データベース名は変更しています。
----------
<?php
$url = 'mysql:host=mysql1.php.xdomain.ne.jp'; //mysqlサーバー名
$user = 'user_abc'; //ユーザーID
$pass = 'abcdefg'; //パスワード
$db = 'dbname=user_xyz'; //データベース名

$link = mysql_connect($url,$user,$pass) or die("MySQL接続失敗");
$sdb = mysql_select_db($db,$link) or die("データベース選択失敗");
echo "good ";
?>
----------
Warning: mysql_connect(): Unknown MySQL server host 'mysql' (1) in /home/user/user.php.xdomain.jp/public_html/index.php on line 7
MySQL接続失敗

このトピックへの回答は締め切られました。
by 林檎さん (e5c2c793)
投稿数:15回
(ベストアンサー:4回)
2017/09/14 12:27
この回答がベストアンサーです!
<?php
$url = 'mysql:host=mysql1.php.xdomain.ne.jp'; //mysqlサーバー名
$user = 'user_abc'; //ユーザーID
$pass = 'abcdefg'; //パスワード
$db = 'dbname=user_xyz'; //データベース名
----------
パラメータの指定の文字列が違ってるのでは。
以下のように記述してみてください。


$url = 'mysql1.php.xdomain.ne.jp'; //mysqlサーバー名
$user = 'user_abc'; //ユーザーID
$pass = 'abcdefg'; //パスワード
$db = 'user_xyz'; //データベース名

マニュアル
http://php.net/manual/ja/mysqli.construct.php
トピック作成者からの返信 2017/09/14 14:18 posted(6394e43f)

早々にご回答いただきまして、どうもありがとうございました。ご指摘の所を修正しましたら無事にエラーが取れました。なおエラーが解決したファイルはルートディレクトリに入っておりました。

ところが本来使用したいフォルダに入っているphpファイルに同様の修正をして実行しようとするとエラーが発生してしまいました。色々とためしてみましたら、エラーが解決できた先程のファイルをルートからそのフォルダに入れて実行するとエラーになることがわかりました。Xdomainではフォルダ構造がサポートされていないのでしょうか? それとも何か不足しているところがあるのでしょうか?

<エラーメッセージ>

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@mandel.php.xdomain.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

by しゃぼん玉さん (6394e43f)
投稿数:2回
(ベストアンサー:0回)
2017/09/14 11:23
補足いたします。

PHP5.5から mysql_connect()の関数は非推奨となりmysqli に変わったとの情報がありましたので、mysqli_connect()に変更してみました。

$link = mysqli_connect($url,$user,$pass) or die("MySQL接続失敗");
$sdb = mysqli_select_db($link,$db) or die("データベース選択失敗");

<結果>
Warning: mysqli_connect(): (HY000/2005): Unknown MySQL server host 'mysql:host=mysql1.php.xdomain.ne.jp' (2) in /home/mandel/mandel.php.xdomain.jp/public_html/index.php on line 7
MySQL接続失敗

どうもホスト名が間違っているようなのですが、どこが間違っているのかわかりません。管理パネルの「データベース→MySQL設定」の「MySQL情報のMySQLホスト名」は「mysql1.php.xdomain.ne.jp」になっております。
トピック作成者からの返信 2017/09/14 19:31 posted(6394e43f)

補足です。

ファイルA, Bがあり、AからFormやHeaderでBを呼び出しています。A,Bとも同じフォルダにある場合は問題なく動きますが、Bが別フォルダにあるとエラーが発生してしまいます。URLをみるとBのURL(http://user.php.xdomain.jp/フォルダ/ファイルB)が表示されているのでアクセスは問題ないように思います。原因が良く分からないので困っております。
-----------
<エラーメッセージ>

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@mandel.php.xdomain.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

by しゃぼん玉さん (6394e43f)
投稿数:2回
(ベストアンサー:0回)
2017/09/14 20:25
下記の二つの現象の原因がわかりました。問題が発生するフォルダに入っていた「.htaccess」を削除すると問題が解消しました。フォルダに「.htaccess」を入れたのはXAMMPを使用してPHPとMySQLを学ぶ解説書に書かれていたので、それをそのまま適用しました。初心者なので理由はよくわかりませんが、色々とお騒がせしました。コメントをいただいた林檎さん、助かりました。どうもありがとうござい
この回答に返信する