MSSQLとの連携

 

PostreSQLやMySQLへ接続する方法は多く紹介されているがMSSQLへの接続方法はそれほど紹介されていない。実際に私が行った接続方法を紹介する。

php.iniの編集

 

extension=php_mssql.dll 

このDLLを有効にする為、コメントアウトを解除する。
変更後、apacheを再起動すること!

 

 

 

クラスの作成

 

<?
class dbaccess
{
      //データベース接続を行う関数
      function mssql_con(){
           setlocale ("LC_ALL", "ja");
           $db = mssql_connect ("192.168.1.1", "sa", "");
           return $db;
      }
}
?>
上の関数をdbaccess.phpとして保存しておきます。

クラス化する理由は再利用するためである。必要なコードはクラス化しましょう!!

 

 

 

アクセスしてみる。(ものすごい簡単な例です)

 

<?
ob_start(); 
require_once("dbaccess.php");
$dba = new dbaccess();
$db = $dba->mssql_con();
mssql_select_db("DATABASE1",$db);
$query = "SELECT * FORM TABLE1";
$res = mssql_query($query,$db);
while($row = mssql_fetch_array($res)){
    echo $row['fld1'];
}
mssql_free_result($res);
mssql_close();
?>
上コードのようにDATABASE1のTABLE1へアクセスし、fld1のフィールドを出力するものです。

注意!!
mssql_fetch_array()という関数でデータを呼び出しているが、mssql_fetch_row()という関数も存在する、しかしデータベースのメンテナンスなどからmssql_fetch_array()をしたほうが使い勝手はいい。

 

MSSQLの関連する関数(よく使う関数をピックアップ)

  mssql_connect  MSSQLに接続する関数  
  mssql_close  MSSQLを接続解除する関数  
  mssql_fetch_array  配列としてデータを取得する関数  
  mssql_result  MSSQLから結果データを得る関数  
  mssql_select_db  データベースを選択する関数  
  mssql_query  クエリーを発行する関数  
       

 上表の関数のみほとんど問題ないと思う。その他の関数は使えば便利ではあるが、特に使うところもないのでほとんど使っていない。

実験を行った環境

MS SQL Server 2000 / MS SQL Server 7 + PHP  + Apache 1.3.26