![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
現在、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?8acaa2e)
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ランキング
-
phpMyAdminでのエラー「mysql ...
-
MY SQL ダウンロウド
-
接続ができません
-
ODP.NETのバージョン確認
-
副問合せにLIKE文を使う方法は...
-
SQLのVARCHARとVARCHAR2の違い
-
MySQLカラム名は日本語と英数字...
-
INT型は金額の型に使用するべき...
-
フォームから送信した値とMySQL...
-
mysqldが実行できない
-
オラクルのデータ型・通貨について
-
ユーティリティーとは?OPatch...
-
cseデータ閲覧時に文字化け
-
Float型の時の計算結果がおかしい
-
“埋め込む”の意味を教えてください
-
VBAで変数内に保持された二次配...
-
日本語をinsert時に文字化け
-
DB内の日本語データがPHPで取得...
-
Column '' not found.
-
バッチファイルでTRUNCATE TABLE
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysqlがインストールされている...
-
mysqlがインストールされている...
-
MySQLがインストールできません...
-
mysqlのインストール時に設定ウ...
-
phpMyAdminでのエラー「mysql ...
-
mysqldを削除してしまいました
-
mysql_fetch_array()関数でのエ...
-
xampp phpmyadminで新しいテー...
-
MySQLがインストールされている...
-
【CentOS3.7】MySQL4.1.22、php...
-
MYSQLのインストール(日本語説...
-
makeのエラー【g++がみつからな...
-
php+MySQLしか使えないレンタル...
-
mysql4.1をインストールするとE...
-
MY SQL ダウンロウド
-
MySQL 過去バージョンのインス...
-
mySQL 3.23 インストールをする...
-
mySQLについて
-
MySQLの導入
-
wordpressの記事の復活,xserver
おすすめ情報