PHP を使用すると、データベースに簡単に接続し、データを要求して Web サイトに表示したり、データベース内のデータを変更したりすることもできます。 MySQL は非常に人気のあるデータベースであり、インターネット上には PHP と MySQL に関するチュートリアルが多数あります。 MySQL は無料なので、多くの人を魅了するかもしれません。 MySQL は幅広い用途に使用できるため、ここでは MySQL の使用法について詳しく説明しません。 Oracle はエンタープライズ アプリケーションで広く使用されているため、Oracle を使用して PHP とデータベースの接続を紹介します。 Oracle データベースの設計原則については、議論の範囲を超えているため、言及しません。
PHP は、Oracle に接続するための 2 つの関数セット、つまり ORA_ 関数と OCI 関数を提供します。 ORA_ 関数は少し古いです。 OCI機能のアップデートにより改善されたとのこと。 2 つの使用構文はほぼ同じです。 PHP インストール オプションは両方の使用をサポートしている必要があります。
接続
< if ($conn=Ora_Logon("user@TNSNAME","password"))
{echo "SUCCESS ! データベースに接続されました"
}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 ","パスワード")))
{echo "データベースへの接続に失敗しましたn";
終了;
echo "接続として接続されました - $conn n";
$cursor= ora_open($conn); printoraerr($cursor);
echo "オープンされたカーソル - $cursor n";
echo "クエリ $qry を解析しています。 .n";
ora_parse($cursor,$qry,0); printoraerr($cursor);
echo "クエリが解析されました n";
echo "カーソルを実行しています ... n";
ora_exec($cursor); printoraerr( $cursor);
echo "カーソル n を取得しています";
while(ora_fetch($cursor))
$user=ora_getcolumn($cursor,0); );
$ sysdate=ora_getcolumn($cursor,1); printoraerr($cursor);
echo "row = $user, $sysdate n";
echo "カーソルを閉じます。 .. n" ;
ora_close($cursor);
echo "カーソル n を閉じました";
echo "Oracle からログオフしています... n";
ora_logoff($conn);
echo "Oracle n からログオフしました";
?>
結果を表示する
次のコードは、データベースにクエリを実行して結果を出力する方法を示しています。エラーがある場合は、エラーが表示されます
// この関数は、ポインタがアクティブ化されたときに Oracle リクエストごとに呼び出されるとき
// エラーが発生した場合は、すぐに終了します
if(ora_errorcode($in_cur))
{ echo "Oracle コード - ".ora_error($in_cur)." n ";
ora_logoff($conn)
}
return;
関数 exequery($w_qry,$conn); =ora_open($conn);
ora_parse($cursor,$conn); conn);
$w_numcols=ora_numcols( $cursor);
// ヘッダーを表示します
for ($i=0;$iecho "t ".ora_columnname($cursor,$i)."
}
echo " n";
while(ora_fetch($cursor))
{
echo " n"; $i)=="NUMBER")?"RIGHT": "LEFT";
if(ora_columntype($cursor,$i)=="LONG")
echo " ".
ora_getcolumn($cursor,$i)。 " n";
else
echo " ".ora_getcolumn($cursor,$conn);
$numrows++;
if ($numrows==0)
echo " クエリはレコード n を返しませんでした";
echo " n";
echo " $numrows n";
}
echo " n";
ora_close($cursor);
}
// メインプログラム
if(!($conn=ora_logon("user@SID","password"))
echo "エラー: データベースに接続できません。 BY 1,2";
exequery($qry);
ora_logoff( $conn);
?>
HTTP に基づく Oracle ログイン
PHP ページのコードの前に次のコードを追加して、Oracle ログインを確認します。 $SID を正しく設定する必要があることに注意してください。
if(!isset($PHP_AUTH_USER))
{
Header("WWW-authenticate: Basic realm="$SID"")
Header("HTTP/1.0 401 Unauthorized"); ";
echo "
サイトに入る権限がありません
n";
exit;
}
else
{
if (!($conn=ora_logon("$PHP_AUTH_USER@$SID",$PHP_AUTH_PW)))
{Header("WWW-authenticate: Basic realm="$SID"");
Header("HTTP/1.0 401 Unauthorized");
$title="ログイン手順"
入力する権限がありません。サイト
n";
exit;
}}
?>
http://www.bkjia.com/PHPjc/315259.html
で使用されています。