April 20, 2007

PHPを使ったDBアクセス

第17回 PHPを使ったDBアクセス

前回はPerl(CGI)を使ったDBアクセスを説明しました。
今回はPHPを使ったDBのアクセスの仕方を説明します。

ちなみに、PHPとはなんなの?という方もいらっしゃいますでしょうから
簡単に説明いたしますが、PHPとは「Hypertext Preprocessor」の略で、
JavaScriptやASP(Active Server Page)のようにHTMLファイルの中に書き込むスクリプト言語です。

ファイルの拡張子はphpで、さくらインターネットではアクセス権限を755にして使用します。
ファイルの作り方はとても簡単で、HTMLファイルの拡張子をphpにして

「<?php」という単語ではじまって、
「?>」という単語でとじて、この間にPHPのプログラムを書きます。

極端な例を言えば、htmlファイルをphpにしてアップするだけでもHTMLと同じ動きをします。
そこでデータベースなどアクセスするところなどを記述するのに
<?php

?>
と記述するわけですね。

具体的にPHPにアクセスするサンプルスクリプトを書いてみましょう。
さくらインターネットでは、スタンダードプラン以上だと、Mysqlという
データベースが使えます。
今回は、Mysqlにアクセスする方法を掲載します。


access.phpというファイルを作るとします。
<?php  

  //DB名

  $dbname = "■■■";

  //ホスト名

  $hostname = "ドメイン名";

  //userid

  $userid = "●●●";

  //password

  $passwd = "▲▲▲";  

  


  $db_key = db_property();//DB設定値の読み込み

  //データベースに接続

  if(!$con=mysql_connect($hostname,$userid,$passwd)){

    echo "接続失敗";

    exit;

  }

  

  //データベースを選択

  $row=mysql_select_db($dbname,$con);


  $sql = "SQL";

  

  //select文を実行

  if(!$res=mysql_query($sql)){

    echo "SQL失敗";

    mysql_close($con);//データベースを切断    

    exit;

  }


  if (!($rs = mysql_query($sql))) {

    die;

  }




  "HTMLを表示したりする"

    


  //データベースを切断

  mysql_close($con);  

  

    

}

?>


こんな感じになるでしょうか。

PerlでDBアクセスするときにも記述しましたが
●●●のところは、DBにアクセスするユーザ名、▲▲▲のところはパスワード、
それと「DB名:ドメイン名」のところにはDB名のドメインが入ります。

ちなみに、dbnameとは、データベースの名称を入れるところなのですが
さくらインターネットの場合、データベースは1つしか作れないので
(テーブルは何個でも作れます)
テーブル名称=idだと思いますので、たぶんuseridと同じものを入れれば、動きます。


これでPerl、PHPを使ってデータベースにアクセスする方法はわかりましたね。
ただSQLを書くにあたって、サーバーにphpやらcgiにSQLを記述したものをいきなり使ってしまうと
不具合があるかもしれません。

そのため、自分が書いたSQLがあっているかどうかを検査する必要があります。

次回は、プログラムを使わないで直接Mysqlを操作する方法を掲載いたします。

投稿者 midilin : 04:02 PM | コメント (2)