- ベストアンサー
PHPでMySQLのDBに接続
PHP,MySQLが使えるレンタルサーバーを借りているのですが, PHPでMySQLに接続し、php_dbを選択をするようにしたいのですが、 この時DBファイルはどこに置けばいいのでしょうか? 現在はMySQLの管理コマンド(?)とは別にpublic_htmlの中に PHPフォルダを作り、そこにDBファイルを入れています。 PHPのスクリプトは <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>練習</title> <meta http-equiv="content-language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> </head><body> <?php $con = mysql_connect(); if (!$con) { echo ("Error:MySQLに接続できませんでした。<br />"); } else { echo ("接続ID=$con<br>\n"); } $selectdb = mysql_select_db("php_db" ,$con); if (!$selectdb) { echo ("Error:データベースを選択できませんでした"); } else { echo ("データベースphp_dbを選択しました。"); } ?> </body></html> としています。 MySQLには接続ができるのですが、php_dbには接続ができません。 php_dbのおき場所を変えるのか、ファイルの指定が間違っているのか その他、どの要に変更をしたらよいのでしょうか? お願いします。 環境はレンタルサーバーがLINUXでPHPのバージョンなどはわからないんです・・・!! 開発がOSがW2kでFTPで転送してます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
amountainblastさんが勘違いなされていると思うのですが・・・ 基本的にデータベースのファイルは「データベースが管理するもので、ユーザ(プログラマー)が直接触る必要はありません」。 GuruGuru22さんがおっしゃられるとおり、まず先にmysql_create_dbでデータベースを作成します。これはデータベースソフトによってなされる事なので、それに使用されるファイルがどこにどのように作成されるかを気にする必要はありません(同じサーバー上に存在しない事もあります)。 その上で、その作成したデータベースをmysql_select_dbで選択するのです。 多分その本にはコマンドラインからのデータベースの作成の仕方が載っていたのだと思うのですが、それで生成されるファイルが他のサーバーのデータベースで使えるかどうかは分からないので、そのサーバーで作り直す必要があると思います。 なお、サーバーソフトとLinuxの種類やPHPのバージョン等は(もっとも有名な関数)"<?php phpinfo() ?>"で調べる事が出来ます。
その他の回答 (2)
- GuruGuru22
- ベストアンサー率51% (177/346)
>PHPのmysql_create_db関数でデータベースを作って、 >そのアップ先は何処のフォルダでもいいのでしょうか? えーと、サーバーにupしたスクリプトで mysql_create_dbを実行して、うまくいけば サーバー上にデータベースが作成されますよね。 試してみて、サーバーのどこに作成されたか 確認してみてはどうかと思ったのです。 ただ、そのレンタルサーバーの説明書きか何かを 見ればそういったことは書いてあると思うのですがね。
- GuruGuru22
- ベストアンサー率51% (177/346)
ローカルでデータベースつくって それをサーバーにアップしているって ことですか。 MySQL のヴァージョンの違いとかは 気にしなくても大丈夫なのかな。 とりあえず、PHPのmysql_create_db関数で データベースつくってみたらどうでしょう。
お礼
ご回答ありがとうございます。 今は書籍を読んで勉強していて、 その本についていたデータベースをアップしています。 ただ、本が窓を使った環境で説明されているのと、データベースを何処にアップしたらいいのか書いていないので、よく、分からないんです。 PHPのmysql_create_db関数でデータベースを作って、そのアップ先は何処のフォルダでもいいのでしょうか?
お礼
ご回答ありがとうございます。 何やら私が勘違いをしているみたいですね・・・!! すみません。 mysql_create_dbでデータベースを作るスクリプトを if (!mysql_create_db("sample_db" ,$con)) { echo ("Crete_DB Error:データベースを作成できませんでした。<br>\n"); } else { echo ("データベースを新しく作成しました。<br>\n"); } アップしたことろTRUEが返りました。 あまり原因がわかっていません。 どうやら権限を付けるんだろうと勝手に解釈しております。 のでもっと基本的な事から始めないといけないみたいなので、どうしようかと思っていたら後ろの方にコマンドラインからのmysqlの操作が書いてありましたので、とりあえず先に進んでみようと言うことで、先に進みたいと思います。どうもありがとうございました。