- ベストアンサー
PHPからmySQLへの接続
PHPからmySQLへ接続しようとしているのですがうまくいきません。 使用しているのはWindowsXP / apache_2.2.11 / php-5.2.8 / mysql-5.1.30 です。 添付データ(サンプルを引っ張ってきて書き換えたものなのでタイトルなどはいい加減です。また、パスワードは伏せてあります)のようなものをつくり実行すると以下のようなエラーが出ます。 Fatal error: Call to undefined function mysql_connect() おそらく「mysql_connect()が定義されていない」というエラーだと思われます。 調べてみると「extension=php_mysql.dllをコメントから復帰させる」というのがベストのようですが、使用しているphp.iniから該当する文が見つけられません。 どのようにすれば接続できるようになるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
サンプル画面が小さすぎるよ。 とりあえず、以下で、参考になりますか? もちっと、普通の時間帯なら実サンプルも あるのですが。 ただ下記の説明とはあまり違っていません。(以下、抜粋です) ----------------------------------------------------------- データベースのデータを持ってくるには、まずデータベース(の処理対象テーブル)を作らなくてはなりません。データベースが使えるレンタルサーバーであれば、WebベースのMySQL管理ツールが用意されている場合も多いので、それを使うと楽です。あるいは、SQLの練習もかねてテーブルの作成、データの登録を行うSQLを実行するPHPスクリプトを書いてみても良いでしょう。 とりあえず、連番のIDと名前など簡単なデータベースを作ってみてください。 データベースのテーブルができたら、データベースにアクセスします。データベースからデータを持ってくる流れは、 mysql_connect()でMySQLに接続 mysql_select_db()で操作対象DB選択 mysql_query()でテーブルからデータを取得 mysql_fetch_array()で取得したデータの各行のデータを取得し、処理 mysql_close()でデータベースを閉じる という流れになります。 最初のデータベース接続は、 $db = mysql_connect("***.**.jp", "userame", "pass"); のように、データベースの場所、ユーザー名、パスワードを引数にmysql_connect()を呼び出し、返された値を保存しておきます。続いて、その値とデータベース名を指定し mysql_select_db("dbname", $db); mysql_select_db()を呼び出せば、そのデータベースが処理対象になりますので、後はそのデータベースに対してmysql_query()を呼び出し、SQL文を実行していくだけです。 たとえば、この状態で $res = mysql_query("select * from table1"); とすると、$resにtable1の内容を持ってくることができます。そして、持って来た内容はmysql_fetch_array()で、各行ごとに列名をキーとする配列に格納することができる(mysql_fetch_array()は、呼び出すごとに次の行が選択され、最後に来るとfalseを返す)ので、 while ($item = mysql_fetch_array($res)) { print $item['name']; } とすると、「データベースdbname内のtable1に格納されている全データ行のname列」を$item['name']で順次参照し表示できます。表示するデータを絞り込んだり、一定の条件でソートする場合は、SQL文にwhere句やorder句を追加しましょう。 最後に処理が終わったら、mysql_close()でデータベースを閉じます。 以上で見たように、PHPでデータベースからデータを持ってくるのは、非常に簡単です。特に、複数のデータを使ったり、項目数が多いデータを扱いたい時には、威力を発揮するでしょう。また、SQL文やデータベースの基本的な操作は覚えておくと便利な場面も多いので、データベースとPHP対応のWebサーバーが使える環境をお持ちなら、一度「データベースWebアプリケーション」を作ってみてはいかがでしょうか。 ----------------------------------------------------------- 多少、長文ですが、 大体、自分も、このあたりからヒントをもらうことが多いです。 丁寧な文章で良いと思います。
その他の回答 (1)
- taka451213
- ベストアンサー率47% (436/922)
こんばんは。 >>使用しているphp.iniから該当する文が見つけられません。 追記しましょう。 もちろんそのためのDLLは必要です。
お礼
回答ありがとうございます。 php.iniに追記して試してみます。
お礼
回答ありがとうございました。 これを参考にして作成していきたいと思います。