• ベストアンサー

PHPとMySQLの連携について教えてください

PHPからMySQLを使いたくて下記の環境を構築しました。 それぞれは正常に動作していますが、phpとmysqlの連携ができません。 PHP Version 4.3.10 MySQL Version 4.1.15 Apache 2.0.52 WindowsXP Home Edition ホスト名 localhost ユーザー名 root パスワード adminで firsttestというDBにテーブルを作成しました(DOSプロンプトから)。 そして次のコードを記述して実行すると下記のエラーが表示させます。 $conn=mysql_connect("localhost","root","admin"); // 5行目 mysql_select_db("firsttest",$conn); // 6行目 $res=mysql_query("show tables",$conn); // 7行目 --------- エラー画面----------- Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\Program Files\Apache Group\Apache2\htdocs\sweetsystem\dbtest.php on line 5 Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\Apache Group\Apache2\htdocs\sweetsystem\dbtest.php on line 6 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\Apache Group\Apache2\htdocs\sweetsystem\dbtest.php on line 7 ------------------------------ MySQLを利用しないPHPプログラムは正常に動作しています。 またMySQLもDOSプロンプトからはテーブル等正常に作成できます。 初心者で先に進めずとても困っています。 解決策がありましたら教えてください。 宜しくお願いします。

  • PHP
  • 回答数2
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

MySQL4.1からパスワードの管理方式が変わりました。 infotownさんがインストールしたPHP 4.3.10に含まれるモジュールでは この新しいパスワード方式には対応できない為エラーになっているようです。 PHPを新しい4.4.1(もしくは4.3.11)に置き換えるか、モジュールだけ最新の物にリコンパイルするか... おすすめできませんがSQLを実行し旧暗号化方式に対応させることもできます。 おすすめできませんが起動オプション --old-passwords をつけて起動するか my.cnfファイルの[mysqld]ファンクションにold-passwordsを記述することで この問題を回避できます。 ちなみに4.3.10には深刻な脆弱性がありますのでバージョンアップをおすすめします。

infotown
質問者

お礼

早速の回答ありがとうございます。 ご指摘のとおりバージョンアップします。 ありがとうございました。

その他の回答 (1)

  • rheda
  • ベストアンサー率30% (3/10)
回答No.2

PHP,MySQL,Apacheを使っての環境構築 は、結構大変だと思います。 本に書いてあることが、古かったり。 PHP+MySQL程度なら、思い切って、 レンタルサーバー上で、直接、実行 してみるのも手かと思います。 殆どのレンタルサーバーで、月何百円 で、PHP+MySQLがつかえるはずです。 環境構築で止まるのは、もったいないです。 うごいたら、同様のバージョンで、 自分のPC上に環境を作ったらどうでしょうか。

infotown
質問者

お礼

ご回答ありがとうございます。 確かに環境構築でとまるのはつらいです。 参考にさせていただきます。

関連するQ&A

  • ネット上の無料サーバースペースのMySQLにコネクトできない

    無料サーバーで、PHP対応だとのことで サーバー管理画面でphpMyAdminでMySQLデータベースと管理者を設定し、テーブルも作ってみました。 ですが、.phpでプログラムを書いてサーバー上において実行させても以下のようなメッセージが出て、検索も操作もできていないようです。 どうすれば、きちんとコネクトして使えるようになるでしょうか。 Warning: mysql_connect(): Lost connection to MySQL server during query in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 3 Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 4 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 5 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 6

    • ベストアンサー
    • PHP
  • MySQL+PHPのエラーについて

    こんにちわ。未熟者@MySQLです。 今まで自宅サーバー(Fedra3)で動かしていたDBをホスティングのサーバーに移行したらエラーがでます。 内容は Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/xxx/www/new.php on line 81 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xxx/www/new.php on line 82 ホスティングサーバーのOSはFreeBSD、もちろんMySQLもPHPも対応しています。かわったところはというと、ホスティングではphpMyAdminを用いてテーブルを作成した点でしょうか。エラー解決以前にこのエラーの意味が分かりません。ググってもどこかのサイトのエラーページばっかりですし・・・PHPとApache、MySQL共のバージョンが同じなのですが、どこか設定がおかしいのでしょうか?一応php.iniの設定はいじれるようです。アドバイスの程よろしくお願いいたします。

  • MySQLにつなぐことができない。

    PHPで、データベースからデータを取得しようとしたのですが、データベースもパスワードもデータも完璧なのに、以下のようなエラーが出てしまい、1週間不眠不休で調べましたが、全く解決できません。 <エラー> Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\merhen\data\index.php on line 98 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\merhen\data\index.php on line 99 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\merhen\data\index.php on line 101 <コード> $sqli="select * from $news_table where order by id desc limit 5"; //SQLで引き抜いて変数に格納する if(($dbhi = mysql_connect($host,$database_user,$database_password)) != FALSE){ mysql_select_db($dbname) or die("Connect Error!"); $resi = mysql_query($dbhi,$sqli); $counti = mysql_num_rows($resi); エラーの意味は分かるんですが、全く解決策がわからないので、精魂尽き果ててしまいそうな状態です。 納期が明日ですので、すぐに回答がいただければと思います。 XAMPP1.6.3a及びPHP5.2を使用しています。

  • フォームとPHPの連携

    こんにちは。今回、オプションメニューのフォームを作り、選択したオプションごとにデータを表示させるというものを作っているのですが、オプションを選択し、実行すると、 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in~ Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in~ と表示されてしまいます。 フォームを用いずに単にデータを表示させるだけならできたのですが・・・ フォームとPHPを連携させる場合、php.ini内のregister_globalsをOnにする必要があるとのことだったので、Onにはしているのですが・・・ 問題はほかにあるのでしょうか?よろしくお願いします。

    • ベストアンサー
    • MySQL
  • サーバーにPHPを拒否されてしまう

    無料HPでPHPの練習をしている初心者です。 PHPファイルをサーバーにアップしてブラウザでみてみると・・・ ------------------------------------------------------------- 今日は、2008/07/26 です☆ Warning: fopen() [function.fopen]: Unable to access count.txt in /home/freeuser/ameyuki/htdocs/test.php on line 19 Warning: fopen(count.txt) [function.fopen]: failed to open stream: No such file or directory in /home/freeuser/ameyuki/htdocs/test.php on line 19 Warning: fgets(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 20 Warning: fseek(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 22 Warning: fputs(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 23 Warning: fclose(): supplied argument is not a valid stream resource in /home/freeuser/ameyuki/htdocs/test.php on line 24 あなたは 1 人目のお客様です。 -------------------------------------------------------------- このような警告ばかりでて、PHPのコマンドが働いていないようなのです。日付は表示されますし、お客様の人数も一応1となっていますが、TOPへ戻ってから再度きても1人なのです。だから働いていないと思うのです。どうしたらPHPのコマンドを受け入れてもらえますか?無料HP、PHP可のところでは無理なのでしょうか? お願いします!

    • ベストアンサー
    • PHP
  • PHP/mySQLでインサートができません。

    PHPとmySQLを勉強中の初心者ですが、よろしくお願いします。 PHPで簡単なインサート文を作ってそれをmySQLに保存しようとしているのですが、以下のエラーが出てしまいます。 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource プログラムは以下の通りです。HOSTNAME,USERNAME,DBPWDは別のところで定義していますが、mysql_connect, mysql_select_dbではエラーにならないので、データベースの選択まではうまく行っていると思うのですが。 $conn = mysql_connect(HOSTNAME, USERNAME, DBPWD); if(!$conn){ die("Logon Failure to mysql Server."); } $db = mysql_select_db(DBNAME, $conn); if(!$db){ die("Cannot access to the DB"); } foreach($csv_ary as $a => $b) { $query = "INSERT INTO TEST field_a VALUES $a"; if (!mysql_query($query, $db)){ echo "更新失敗: SQL=$query<br>"; } } mysql_close($conn); field_aはvarchar(10)でPrimary_key, NOT NULLの設定です。 Foreachで展開した配列の値はちゃんと長さ10の文字列が入っています。 PHP 4.3.11は mySQL 4.0.27です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPエラーについて教えてください

    PHPエラーについて教えてください GD関数のエラーだと思います。 サーバを移動したら以下のようなエラーが出ました。 どのようなエラーになるのでしょうか。 Warning: imagesx(): supplied argument is not a valid Image resource in /home/sites/heteml/xxx/xxx.php on line 99 Warning: imagesy(): supplied argument is not a valid Image resource in /home/sites/heteml/xxx/xxx.php on line 99 Warning: imagecopyresized(): supplied argument is not a valid Image resource in /home/sites/heteml/xxx/xxx.php on line 99 Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/sites/heteml/xxx/xxx.php on line 100

    • ベストアンサー
    • PHP
  • 次のエラーの説明をお願いします。

    エラーがでて次の掲示板がひらけません。 http://www.inter-edu.com/forum/ という受験掲示板ですが,開こうとすると次のエラーがでてひらけません。どなたか原因を教えていただけませんか? Warning: mysql_connect(): Too many connections in /home/homepage/public_html/forum/include/db/mysql.php on line 3025 Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/homepage/public_html/forum/include/db/mysql.php on line 3026 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/homepage/public_html/forum/include/db/mysql.php on line 902 Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /home/homepage/public_html/forum/include/db/mysql.php on line 904 Too many connections: select * from phorum_settings

  •    ☆ PHP & Mysqlとの連携で Apacheのhttpd.

       ☆ PHP & Mysqlとの連携で Apacheのhttpd.confテキストの設定方法 ・PHP入門者ですが、Mysqlとの連携でのプログラム実装を何度か試みたのですが、 上手くいきません。(;一_一) ・エラーコードは、Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\php\db_Connect.php on line 16 と返されます。 ・<?php phpinfo(); ?>を実行しても、mysqlの項目は表示もされません。 ググってますが、参考して実行してもどうしても上手くいきません。 誰か、ご教授くださいませ。 実行環境:OS windowsXP,PHP + Mysql +Apache2、DreamWeaver

    • ベストアンサー
    • PHP
  • 何故、mysql_insert_id が not a valid になるのでしょうか?  

    MySQLバージョン サーバ5.0.45、 クライアント 3.23.49 Apache2.0.61 (Win32) PHP4.4.7 の環境下で、 名称 member, id int(10) unsigned not null auto_increment、 name, varchar(20) not null, mail varchar(30) not null のテーブルを作りました。          次のスクリプトを書いて <?php session_start(); $name = $_POST["name"]; $mail = $_POST["mail"]; print_r($_POST); $conn = mysql_pconnect("localhost", "ABC", "XYZ") or die("Can't connect"); mysql_select_db("SIMEI", $conn) or die("db error") ; $query = "INSERT INTO member (name, mail) VALUES ('$name','$mail')"; $result = mysql_query($query, $conn); //$oid = 'mysql_insert_id($result)'; //''で括ってみる $oid = mysql_insert_id($result); // ← 11行 $result = mysql_query( "SELECT id FROM member WHERE oid = $oid", $conn); if($result){ print("insert OK");}  echo "Can't insert "; $_SESSION['id'] = mysql_result($result, 0); // ← 14行 mysql_close($conn); ?> これを実行すると、 データはmysql DB に登録されますが、下記のエラーが出て、id を取得できません。 何故でしょうか? どうすれば不具合を解決することができるでしょうか? Warning: mysql_insert_id(): supplied argument is not a valid MySQL-Link resource in C:\・・・・\insert.php on line 11 Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\・・・・・\insert.php on line 14

    • ベストアンサー
    • MySQL

専門家に質問してみよう