PHP を使用すると、データベースに簡単に接続し、データを要求して Web サイトに表示したり、データベース内のデータを変更したりすることもできます。 MySQL は非常に人気のあるデータベースであり、インターネット上には PHP と MySQL に関するチュートリアルが多数あります。 MySQL は無料なので、多くの人を魅了するかもしれません。 MySQL は幅広い用途に使用できるため、ここでは MySQL の使用法について詳しく説明しません。 Oracle はエンタープライズ アプリケーションで広く使用されているため、Oracle を使用して PHP とデータベースの接続を紹介します。 Oracle データベースの設計原則については、議論の範囲を超えているため、言及しません。
PHP は、Oracle に接続するための 2 つの関数セット、つまり ORA_ 関数と OCI 関数を提供します。 ORA_ 関数は少し古いです。 OCI機能のアップデートにより改善されたとのこと。 2 つの使用構文はほぼ同じです。前述したように、PHP インストール オプションは両方の使用をサポートしている必要があります。
PHP3 をサポートする Apache サーバーを Microsoft Windows プラットフォームにインストールする方法や、Oracle データベースについて詳しく知りたい場合は、次の URL を確認してください: www.csoft.net/~vsbabu/articles/oraphp.html。
4.1 接続
if ($conn=Ora_Logon("user@TNSNAME","password"))
{
echo "成功しました! データベースに接続しました"
}
else
{
echo "失敗しました :-( できませんでした) connect todatabasen";
}
Ora_Logoff($conn);
phpinfo();
?>
上記のコードは、TNSNAME (tnsnames.ora ファイルで指定) で定義された Oracle データベース名、ユーザー名、パスワードを使用して接続します。成功した接続に基づいて、ora_logon 関数はゼロ以外の接続 ID を返し、それを変数 $conn に格納します。 。次のコードは、接続とクエリの典型的な例を示しています。
/*
* データベースに接続し、クエリを実行します
*/
function printoraerr($in_cur)
{
// Oracle にエラーがあるかどうかを確認します
// 表示エラーがある場合
// ポインタがアクティブ化されると、Oracle への各リクエストの後にこの関数が呼び出されます
if(ora_errorcode($in_cur))
echo "Oracle code - ".ora_error($in_cur)."n";
return;
}
/ **メインプログラム*/
if (!($conn=ora_logon("user@TNSNAME","password")))
{
echo "データベースへの接続に失敗しました";
}
echo "接続として接続しました - $conn
n";
$cursor=ora_open($cursor);
echo "オープンしたカーソル - $カーソル
n";
$ qry = "デュアルからユーザー、sysdate を選択";
echo "クエリ $ qry ...
n";
ora_parse ($ カーソル, $ qry, 0); ED
n";
echo "カーソル
n を実行しています";
ora_exec($cursor);
echo "カーソル
n を実行しています";
while( ora_fetch($cursor))
{
$user=ora_getcolumn($cursor,0);
$sysdate=ora_getcolumn($cursor,1);
echo " user, $sysdate
n";
}
echo "すべてのレコードを取得しました
n";
echo "カーソルを閉じています ...
n";
ora_close($cursor);
echo "カーソルを閉じました
n";
echo "Oracle からログオフしています...
n";
ora_logoff($conn);
echo "Oracle からログオフしています
?> PHP マニュアルの Oracle データベース関数セクション)
4.3 結果の表示
次のコードは、データベースにクエリを実行して結果を出力する方法を示しています:
function printoraerr($in_cur, $conn)
{
// Oracle がエラー
// エラーがある場合は表示されます
// ポインタがアクティブ化されると、Oracle への各リクエストの後にこの関数が呼び出されます
// エラーが発生した場合は、すぐに終了します
if(ora_errorcode( $in_cur))
{
echo "Oracle コード - ".ora_error($in_cur)."
ora_logoff($conn)
}
}
関数 exequery($w_qry,$conn)
{
$cursor=ora_open($conn); printoraerr($cursor,$conn);
ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn);
ora_exec($cursor); printoraerr($cursor,$conn);
$numrows=0;
$w_numcols=ora_numcols($cursor);
// 显示头部
echo "
n";
for ($i=0;$i<$w_numcols;$i++)
{
$align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT";
echo "t ".ora_columnname($cursor,$i)." n";
}
エコー 「
n」;
while(ora_fetch($cursor))
{
echo " n";
for ($i=0;$i<$w_numcols;$i++)
{
$align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT";
if(ora_columntype($cursor,$i)=="LONG")
echo " "。
ora_getcolumn($cursor,$i)."
n";
else
echo " ".ora_getcolumn($cursor,$i)." n";
printoraerr($cursor,$conn);
}
$numrows++;
エコー 「
n」;
}
if ($numrows==0)
echo 「 クエリが返されました レコードがありません
n」;
else
{
echo " n";
エコー「 カウント n」;
echo 「 $numrows n」;
エコー 「
n」;
}
エコー 「 n」;
ora_close($cursor);
戻る;
}
// 主程序
if(!($conn=ora_logon("user@SID","password")))
{
echo "エラー: データベースに接続できません";
終了;
}
$qry="SELECT
deptno 「部門」
,empno 「従業員」
,empnm 「名前」
,salary 「給与」
FROM
従業員
ORDER BY 1,2";
exequery($qry);
ora_logoff($conn);
?>
(注:上記のコード セクションは注釈を省略しています。投稿者は PHP マニュアルの Oracle データベース関数の部分を参照しています)
4.4 HTTP の Oracle 登録に基づいています
Oracle のログインを確認するには、PHP の面のコードの前に以下のコードを追加します。 $ SID を正しく設定します。
if(!isset($PHP_AUTH_USER))
{
Header("WWW-authenticate: Basic realm="$SID"");
Header("HTTP/1.0 401 Unauthorized"); ;
echo "
n"
終了
}
else
if (!($conn=ora_logon("$PHP_AUTH_USER@$SID") ) ))
{
Header("WWW-authenticate: Basic realm="$SID"");
$title="ログイン手順" ;サイトに入る権限がありません
n";
exit;
}
}
?>
http://www.bkjia.com/PHPjc/315543.html
www.bkjia.com
true