- 締切済み
mysqlにうまく接続できません
PHP、Mysql初心者です。 何かWEBページの作品を作ろうと、データベースを使ってます。 ごくごく定番のPHPからデータベースの内容を書き出すことをしているのですが、 Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\renshu\ken.php on line 10 というエラーコードが出ました。私のテキストエディタでの9~11行目はこちらです。ちなみにApache2とMysql5です。 <?php mysql_connect('localhost','root','パスワード'); mysql_select_db('データベース名'); 参考書通りにやっていまして、タイプミスはないはずなんですが…。ホスト名やユーザ名もあっているはずです。 どなたか教えてください。よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nora1962
- ベストアンサー率60% (431/717)
お疲れ様です。 もう一度 http://allabout.co.jp/internet/database/closeup/CU20040928A/ の手順を確かめてください。 特にhttp://localhost/phpinfo.phpで表示される、「Configuration File (php.ini) Path」の場所がどこになっているか、その場所にある「php.ini」 が正しく修正されているかを確認してみてください。
- masa6272
- ベストアンサー率66% (93/140)
nora1962さんのご指摘のとおりですが、ちょっと補足。 PHPでは、基本的な関数群以外は、設定しないと使えません。 MySQLを使わない人が、MySQL用の関数を持っていても、意味がないからです。 メッセージの意味は、「そんな関数ないよ」ですね。 Windowsでしたら、nora1962さんのご指摘のURLのようにすればいいでしょう。 Linuxで、ソースコードからのインストールでしたら、configの時に、--with-mysql オプションをつけます。 後、PHP5を使っているなら、PDOを使ったほうが、プログラムがすっきりしますよ。
お礼
ご回答ありがとうございます。 あれから何度もnoraさん表記のURL通りのやり方で試してみましたがやはり駄目でした。 php.ini内の ;extension=php_mysql.dllはセミコロンを外したし、 extension_dir = "c:\php\ext\"はこのとおりです。php_mysql.dllはちゃんとc:\php\ext\の中にあります。 libmysql.dllをWindowsディレクトリ(c:\windows\system32)にコピーしました。 もちろんApacheは再起動しました。そしてnoraさん指摘のとおりに「http://ホスト/phpinfo.php」でアドレスバーで写してみましたが、Mysqlが表記されていませんでした。 もうわけがわかりません。
- nora1962
- ベストアンサー率60% (431/717)
php自体は動くんですよね? まず <?php phpinfo(); ?> という内容のファイル(phpinfo.php)を作成して、apache2のhtdocsに 置き「http://ホスト名/phpinfo.php」をブラウザから指定して実行 させます。 そこの「Mysql」という情報がなければ、phpへのmysqlの設定がうまく 行っていない可能性が高いでしょう。 環境がwindowsなら下記のリンクなどが参考になるでしょう。 http://www.nishi2002.com/dwmx2004/006.htm
お礼
有難うございました。ついにデータベースつながりました。 noraさんがおっしゃるとおり、php.iniの場所がいけなかったようです。 私は c:\WINDOWS\system32に置いていました。 それをc:\WINDOWS\に移しただけでよかったのですね・・・。 これに約3日費やして本当に疲れました。 これでやっとプログラムの方に専念できます。 でもいい勉強になりました。ほんとうにありがとうございました。