![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
現在、PHPでMySQLの操作をテストしています。
Vista上にXAMPPをインストールした環境とXP上にApache,PHPとMySQLを個別にインストールした環境とで検証しています。
どちらの環境でも、テーブルにデータをインサートするところまでは出来ました。
mysql_fetch_array()関数を使ってSQLの実行結果を表示させるところで、XAMPPでは結果を表示できるのですが、個別インストール環境では
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\****\incert.php on line 8
が出てしまいます。
mysql_error()でエラーを表示させたところ
No database selected
と表示されます。
mysql_select_db("db_name");
でDBはせんたくされていると思う(事実、XAMPPでは選択されている)のですが、何が問題なのでしょうか?
No.3ベストアンサー
- 回答日時:
#1です。
windows(vista)、linux(centos)で試してみましたが、個別インストール
した環境でも特に問題なくデータが表示されます。
> mysql_fetch_array()関数を使ってSQLの実行結果を表示させるところ
> で、XAMPPでは結果を表示できるのですが、個別インストール環境では
> Warning: mysql_fetch_array(): supplied argument is not a valid
> MySQL result resource in D:\****\incert.php on line 8
> が出てしまいます。
いくつか試したところでは存在しないデータベース名を指定した場合にも
そのメッセージが出るので、まずはデータベースの環境を第一に調べて
見てください。
#2さんも書かれていますが、コマンドラインツールで該当のデータベース
に接続・選択が出来ますか?
この回答への補足
> いくつか試したところでは存在しないデータベース名を指定した場合にも
そのメッセージが出るので、まずはデータベースの環境を第一に調べて
見てください。
わかりました。
コマンドラインツールでは確認出来ては居るんです。
でも、その辺が一番怪しいということですね。
ありがとうございます。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_15.png?5a7ff87)
No.2
- 回答日時:
register_globalsは、今回の問題には関係しないけど、セキュリティ上OFFの方がよいです。
まずは、XAMPPでのphpinfo()出力と、個別インストール環境でのphpinfo()出力とをとっくりと見比べるのが早道かな。特にmysqlの項目。
あと、MySQL側では、今回使用しているユーザーへのgrant 設定はどのように行ったのでしょう?select権限を忘れていたりとか、実は、インサートを行った時と違うユーザーだったり?
「データをインサート」はphpから行ったのですよね?その時の、mysql_select_dbしたのと同じデータベースなのかとか?
また、個別インストール環境の方で、コマンドラインクライアントから、今回使用しているユーザーでのMySQL接続と、その該当データベースを開くことは出来ているのでしょうか?
個別インストールでどういう手順を踏んだかは、こちらでは、知りようがないので、何から何まで疑って掛かることになりそう。
それぞれのphpやMySQLのバージョンも書いて貰った方がよいかも。
この回答への補足
まずバージョンですが、
xampp
PHP Version 5.2.4
Apache 2.2.6
MySQL 5.0.45
個別
PHP Version 5.2.9-2
Apache 2.2.11
MySQL 5.1.33
です。
phpinfo()で出力してみましたが、個別設定の方がDocRootのパスなど設定がきちんとなされているのに対してxamppはデフォルトのままなのでno valueとなっていたりしますが、基本的な部分は差異は無いように見受けられます。
> register_globalsは、今回の問題には関係しないけど、セキュリティ上OFFの方がよいです。
の件ですが、いずれは対処していかなければならないと思っていますが、現状では初心者なのでローカルPC上での動作確認が先決問題です。
grant設定に関しても同様の理由で設定しておらず、rootにてログインして検証しています。なので、他ユーザでログインすることもありません。
> 「データをインサート」はphpから行ったのですよね?その時の、mysql_select_dbしたのと同じデータベースなのかとか?
インサートはphpからです。
家庭内LANでデータをコピーしながらテストしているので、ソースが違っていることは考えられませんし、できないのはmysql_fetch_array()でブラウザに表示させるところで、mysql_fetch_array()部分を削除してMySQLへの入力だけなら動作確認で来ていることから、参照しているのは同一DBだと思います。
> また、個別インストール環境の方で、コマンドラインクライアントから、今回使用しているユーザーでのMySQL接続と、その該当データベースを開くことは出来ているのでしょうか?
これも出来ています。
> 個別インストールでどういう手順を踏んだかは、こちらでは、知りようがないので、何から何まで疑って掛かることになりそう。
確かにそうですね。
ご親切にありがとうございます。
もう少しこちらでも悩んで見ます。
No.1
- 回答日時:
この回答への補足
教えていただいたソースをcheck.phpとし、xamppの環境で実行するとDB内のデータが表示されるので、やはり何か環境設定の問題かと思われます。
個別インストール環境で実行すると以下のメッセージが表示されます。
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\A-Vaio\Clients\0-htdocs\www\main\current\text\MySQL\check.php on line 22
13行目、if....が閉じた後に
else {
print "成功です<br>";
}
18行目を
mysql_select_db( $dbname, $res_dbcon ) or die("失敗です");
とすると
”成功です
失敗です”
と表示されることから、DBの選択が出来ていないように思われます。
php.ini辺りの設定でしょうか?
register_globals=On
にはなっているのですが、その他に必要な設定などあれば教えていただけないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- MySQL XamppでインストールしたMySQLのフォルダのWinRARでのバックアップについて 1 2022/06/22 18:55
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数DBテーブルからのデータ取得
-
#1062 - '0' は索引 'PRIMARY' ...
-
PHPとMySQLを使った掲示板の作り方
-
MySQLのテーブル作成でハイフン...
-
ある時間以内の利用者の抽出に...
-
うまくいきません教えてくださ...
-
エラー 1068 (42000): 複数の主...
-
参考書に従って入力したつもり...
-
SQLでカラムを追加し、条件に合...
-
【初歩】ラジオボタンをつかっ...
-
テーブル名が可変の場合のクエ...
-
`picture` varchar(255) のコマ...
-
MySQL NULLだけをカウントして...
-
矛盾していないでしょうか?
-
SQLです!!教えてください。あ...
-
SQLです!!教えてください。あ...
-
SQLです!!教えてください。あ...
-
SQLです!!教えてください。
-
SQLです!!教えてください。
-
SQLです。あってますか?↓
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysqlがインストールされている...
-
mysqlがインストールされている...
-
xampp phpmyadminで新しいテー...
-
mysqlのインストール時に設定ウ...
-
makeのエラー【g++がみつからな...
-
phpmyadminのインストール
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
MySQLカラム名は日本語と英数字...
-
ODP.NETのバージョン確認
-
旧filemakerで和暦(令和など)...
-
VBAで変数内に保持された二次配...
-
プライマリーキーの昇順でソー...
-
ERROR 1045 (28000) (using pas...
-
INT型は金額の型に使用するべき...
-
like句を使って日本語を検索す...
-
RPMのmysqlとmysql-serverの違い
-
シングルクォーテーションとダ...
-
Float型の時の計算結果がおかしい
おすすめ情報