ホームページ  >  記事  >  php教程  >  PHPデータベース接続

PHPデータベース接続

WBOY
WBOYオリジナル
2016-06-13 12:41:30786ブラウズ

PHP を使用すると、データベースに簡単に接続し、データを要求して Web サイトに表示したり、データベース内のデータを変更したりすることもできます。 MySQL は非常に人気のあるデータベースであり、インターネット上には PHP と MySQL に関するチュートリアルが多数あります。 MySQL は無料なので、多くの人を魅了するかもしれません。 MySQL は幅広い用途に使用できるため、ここでは MySQL の使用法について詳しく説明しません。 Oracle はエンタープライズ アプリケーションで広く使用されているため、Oracle を使用して PHP とデータベースの接続を紹介します。 Oracle データベースの設計原則については、議論の範囲を超えているため、言及しません。
PHP は、Oracle に接続するための 2 つの関数セット、つまり ORA_ 関数と OCI 関数を提供します。 ORA_ 関数は少し古いです。 OCI機能のアップデートにより改善されたとのこと。 2 つの使用構文はほぼ同じです。前述したように、PHP インストール オプションは両方の使用をサポートしている必要があります。
Microsoft Windows プラットフォームでの PHP3 をサポートする Apache サーバーのインストールに関する詳細と、Oracle データベースに関する詳細については、次の URL を確認してください: www.csoft.net/~vsbabu/articles/oraphp.html。
4.1 接続

if ($conn=Ora_Logon("user@TNSNAME","password"))
{
echo "SUCCESS ! データベースに接続されました"
}
else
{
echo "Failed :-( Could not connect to databasen";
}
Ora_Logoff($conn);
上記のコードは、Oracle データベースを使用してデータベースに接続しますTNSNAME で定義された名前、ユーザー名、パスワード (tnsnames.ora ファイルで指定) に基づいて、ora_logon 関数はゼロ以外の接続 ID を返し、それを変数
に格納します。
4.2 クエリ

データベースへの接続の準備ができたとして、実際にデータベースにクエリを適用してみましょう。次のコードは、接続とクエリの典型的な例を示しています。
/*
* データベースに接続してクエリを実行
*/
function printoraerr($in_cur)
{
// Oracle にエラーがあるかどうかを確認します
// エラーがある場合は表示されます
// ポインタがアクティブ化されている場合、Oracle に対する各リクエストの後にこの関数を呼び出します
if(ora_errorcode($ in_cur))
echo "Oracle コード - ".ora_error($in_cur)."n"
return
}
/**メインプログラム*/
if (!( $conn=ora_logon("user@TNSNAME" ,"password"))) "カーソルを開く ...
n";
$cursor=ora_open($conn); 🎜>echo "開いたカーソル - $cursor
n";
$qry="select user,sysdate from Dual";
echo "クエリ $qry ...
n"; 🎜>ora_parse($cursor,$qry,0); printoraerr($cursor );
echo "クエリを解析しました
n"; >ora_exec($cursor);
echo "カーソル
n を実行しました";
echo "カーソルを取得しています ...
n";カーソル))
$user=ora_getcolumn($cursor ,0);
$sysdate=ora_getcolumn($cursor,1); echo " row = $user, $sysdate
n";
}
echo "すべてのレコードを取得しました
n";
echo "カーソルを閉じています...
n";
ora_close($cursor);
echo "閉じたカーソル
n";
echo "Oracle からログオフします...
n"; >echo "Oracle
n からログオフしました";
> (翻訳者注: 上記のコード部分にはコメントがありません。PHP マニュアルの Oracle データベース関数のセクションを参照してください) >4.3 結果の表示

次のコードは、データベースにクエリを実行して結果を出力する方法を示しています。
function printoraerr($in_cur, $conn)
{
// Oracle にerror
// エラーがある場合は表示されます
// ポインタがアクティブになるたびに、Oracle に一度リクエストした後にこの関数が呼び出されます
// エラーが発生した場合は、すぐに終了します
if(ora_errorcode($in_cur))
{
echo "Oracle コード - ".ora_error($in_cur) )."
n";
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":"左";   
echo "t ".ora_columnname($cursor,$i)." n";   
}
echo "
n";   
while(ora_fetch($cursor))
{
echo " n";   
for ($i=0;$i<$w_numcols;$i )
{
$align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"左";   
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」;   
エコー 「 $numrows n」;   
エコー "
n";   
}
echo " n";   
ora_close($cursor);   
戻る;   
}

// 主程序
if(!($conn=ora_logon("user@SID","password")))
{
echo "エラー: できませんデータベースに接続します。」   
終了;   
}
$qry="SELECT
deptno "部門"
,empno "従業員"
,empnm "名前"
,salary "給与"
FROM
従業員
注文は1,2インチまでに;   
exequery($qry);   
ora_logoff($conn);   
?>   
(译者注:以上代序段缺少注释、请者参照PHPマニュアルのOracleデータベース库関数部分)

4.4 HTTPのOracle登录に基づく

以下の番号はPHP页面に追加されます$ SID を正しく設定する必要があることに注意してください。   
if(!isset($PHP_AUTH_USER))
{
Header("WWW-authenticate: basic realm="$SID"");   
Header("HTTP/1.0 401 Unauthorized");   
$title="ログイン手順";   
echo "


サイトに入る権限がありません

n";   
終了;   
}
else
{
if (!($conn=ora_logon("$PHP_AUTH_USER@$SID",$PHP_AUTH_PW)))
{
Header("WWW-authenticate : 基本 レルム="$SID"");   
Header("HTTP/1.0 401 Unauthorized");   
$title="ログイン手順";   
echo "

サイトに入る

n";   
終了;   
}
}
?>   

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。