Do You PHP?    
Search Engine Optimization  php5 powerd  Valid XHTML 1.0!  Valid CSS!  このサイトのはてなブックマーク数 



last updated
2005/05/25

counter hits
since 1999/11/06


JDBC風Oracleアクセスクラス

alertここにある情報はかなり古くなっており、正しくなくなっている可能性があります。掲載しているサンプルコードiなどは、最新のPHPでは動作しない、もしくは、別途設定・調整が必要になるかも知れません。情報を鵜呑みにせず、あなたの手を動かして、あなたの目で確認してください。

zip形式 tgz形式

クラス化の第一弾(というよりも、何かのたたき台?)として、WEB+DB PRESSのサンプルサイトで使用したJDBC風のOracleアクセスクラスをちょっとだけ修正・拡張し、ダウンロードできるようにしました。PHPDocで作成したAPIドキュメントもアーカイブに含まれています。

簡単なサンプルスクリプト(oci_test.php)も付けてますので、Oracleに接続可能な環境があれば実際に試してみることができます。JDBCを使ったことのある方なら見ていただければお分かりの通りかなりJDBCのAPIに似ています。本来、JDBCはJavaで言うinterfaceですが、PHPにはinterfaceに(機能的に)相当するものはありませんので、Classとして実装しています。

●oci_test2.php

<?php
ini_set("include_path", "/home/shimooka/public_html/class/php");
require_once "jp/ne/hi_ho/pat/dimension/sql/jdbc/OCI.phl";
?>
<?php
    $dbc =& new OCI();
    if (!$dbc->connect("scott", "tiger", "orcl")) {
        die("接続に失敗しました<br>");
    }
            :
    // PreparedStatementの例
    $sql = "SELECT * FROM test WHERE char3 = ? ";
    $pstmt = $dbc->prepareStatement($sql);
    echo "get_class1=" . get_class($pstmt) . "<br>";
    if ($dbc->isError($pstmt)) {
        echo $pstmt->getMessage() . "<br>";
        echo $pstmt->getCode() . "<br>";
        exit;
    }

    $ret = $pstmt->setString(1, "abc%");
    echo "get_class ret=" . get_class($ret) . "<br>";
    if ($dbc->isError($ret)) {
        echo $ret->getMessage() . "<br>";
        echo $ret->getCode() . "<br>";
        exit;
    }
    $rset = $pstmt->executeQuery();
    echo "get_class2=" . get_class($rset) . "<br>";
    if ($dbc->isError($rset)) {
        echo $rset->getMessage() . "<br>";
        echo $rset->getCode() . "<br>";
        $pstmt->close();
        exit;
    }

    while ($rset->next())
    {
        echo "no=" . $rset->getString("EMPNO") . "\t";
        echo "name=" . $rset->getString("ename") . "\t";
        echo "name=" . $rset->getString("char3") . "<br>";
    }

    $rset->close();
    $pstmt->close();
            :
    $dbc->close();
?>



About This Site |  Privacy Policy |  Contact
Copyright © 1999 - 2005 by Hideyuki SHIMOOKA all rights reserved.