PHPのInterbase関数を使う

 PHPのInterbase関数を使って、オープンソースRDBMS、 Firebirdに接続して、 テーブルを検索するスクリプトの例です。

<html><head>
<meta http-equiv="Content-type" content="text/html;charset=Shift_JIS">
<title>支店テーブル検索 Firebird版</title></head>
<body bgcolor="white">

<h1>支店テーブルを検索するサンプル(Firebird版)</h1>

<?php
function putError($msg){
  $url = $_SERVER[REQUEST_URI];
  print <<<MSG
    <h2>おおっと</h2>
    $msg<br>
    <a href="$url">検索条件入力に戻る</a><br>
    </body></html>
MSG;
  exit(0);
}

if(isset($_POST["shiten_name"])){
  if(empty($_POST["shiten_name"])){
    putError("検索する支店名を入力して下さい。");
  }
  /* データベースに接続します。*/
  if(($con = ibase_connect(
    "localhost:/usr/dbms/fb/udb.gdb", "urano", "urano399", "SJIS_0208")) == 0){
    putError("データベースに接続できません:" . ibase_errmsg());
  }

  /* SQLを実行します。*/
  /* MySQLでは、表の名前の大文字、小文字は区別されるので、
   * 正確に指定する必要があります。
   */
  $k = $_POST["shiten_name"] . "%";
  $sql = <<<SQL
SELECT SHITEN_CODE, SHITEN_NAME, EMPLOYEE_NUM
  FROM SHITEN
 WHERE SHITEN_NAME LIKE '$k'
SQL;
  if(! ($rset = ibase_query($con, $sql))){
    putError("実行に失敗しました:" . ibase_errmsg());
    return;
  }

  /* 結果を取り出します。 */
  $ncols = ibase_num_fields($rset);
  print <<<HEADER
    <table border="1">
    <tr bgcolor="#ffc0c0">
    <th>支店コード</th><th>支店名称</th><th>従業員数</th></tr>
HEADER;
  while($a = ibase_fetch_row($rset)){
    print "<tr>";
    for($c=0; $c < $ncols; $c++){
      print "<td>" . $a[$c] . "</td>";
    }
    print "</tr>";
  }
  print "</table>";

  /* 結果集合を開放します。 */
  ibase_free_result($rset);
  /* データベース接続を終了します。 */
  ibase_close($con);
}
else{
?>
<form action="<?= $_SERVER[REQUEST_URI] ?>" method="POST">
支店名:
<input type="text" name="shiten_name"><br>
<input type="submit" value="検索">
</form>
<?php
}
?>
</body></html>

 Windows環境の場合、php.iniの次の行の先頭のセミコロンを外して有効にしておきます。

extension=php_interbase.dll

またInterbaseはSybaseと同様に、シングルクォートのエスケープを通常の\' の代わりに''とするので、 同じくphp.iniに書かれている次の初期化パラメータをOnにしておきます。

magic_quotes_sybase = On

Open Source Web Architecture Top

(first uploaded 2003/02/02 last updated 2003/02/02, URANO398)

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル