ホームページ > php教程 > php手册 > 4. データベースへの接続

4. データベースへの接続

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:44:06
オリジナル
1016 人が閲覧しました


4. データベース接続


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","パスワード) "))

{

echo "SUCCESS ! データベースに接続しましたn";

}

else

{

echo "失敗:-( データベースに接続できませんn";

}

Ora_Logoff($conn);

phpinfo();

?>

上記のコードは、TNSNAME (tnsnames.ora ファイルで指定) で定義された Oracle データベース名、ユーザー名、およびパスワードを使用します。成功した接続に基づいて、ora_logon 関数はゼロ以外の接続 ID を返し、それを変数 $conn に格納します。4.2 クエリ



データベースへの接続の準備ができたと仮定して、実際にデータベースにクエリを適用してみましょう。次のコードは、接続とクエリの典型的な例を示しています:


/*

* データベースに接続し、クエリを実行します

*/

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 "データベースへの接続に失敗しました";

exit;

}

echo "接続として接続されました - $conngt;
n";

echo "カーソルを開いています...
n" ;

$cursor=ora_open($conn); printoraerr($cursor);

echo "開いたカーソル - $cursor
n";

$qry ="select user,sysdate from Dual";

echo "クエリを解析しています $qry ...
n";

ora_parse($cursor,$qry,0); printoraerr($cursor);

echo "クエリが解析されました
n";

echo "カーソルを実行しています。 ..
n" ;

ora_exec($cursor); printoraerr($cursor);

echo "カーソルを実行しました
n";

echo "カーソルを取得しています ...< br>n";

while(ora_fetch($cursor))

{

$user=ora_getcolumn($cursor,0) ; printoraerr($cursor);

$sysdate=ora_getcolumn($cursor,1); printoraerr($cursor);

echo " 行 = $sysdate < ;/B>
n";

}

echo "すべてのレコードを取得しました
n";

echo "カーソルを閉じています...< br>n";

ora_close($cursor);

echo "カーソルを閉じました
n";

echo "Oracle からログオフしています... < br>n";

ora_logoff($conn);

echo "Oracle からログオフしました
n";

?>

(翻訳者注: 上記のコードにはコメントがありません。PHP マニュアルの Oracle データベース関数のセクションを参照してください)



4.3 結果の表示



次のコードは、データベースにクエリを実行して結果を出力する方法を示しています:


function printoraerr($in_cur, $conn)

{

// Oracle がエラーをしたかどうかを確認します

// エラーがある場合は表示されます

// ポインタがアクティブ化されると、この関数は毎回呼び出されますOracle へのリクエスト

// エラーが発生した場合は、すぐに終了します

if(ora_errorcode($in_cur))

{

echo "Oracleコード - ".ora_error($in_cur)."
n";

ora_logoff($conn);

終了;

}

return;

}



関数 exequery($w_qry,$conn)

{

$cursor=ora_open($ conn); printoraerr($cursor,$conn);

ora_parse($cursor,$w_qry,0);

ora_exec($cursor); printoraerr($cursor,$conn);

$numrows=0;

$w_numcols=ora_numcols($cursor);

// ヘッダーを表示

echo "

CELLPADDING="2">

n" ;

for ($i=0;$i
{

$align=(ora_columntype($cursor,$i)== "NUMBER")?"RIGHT":"LEFT";

echo " t
n ";

}

echo "
;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 "
n";

else

echo "
n";

printoraerr($cursor,$conn);

}

$numrows ;

echo "
n";

}

if ($numrows==0)

echo "
gt;n";

else

{

echo "
n" ;

echo "
n";

echo "
n";

echo "
n";

}

echo "
".ora_columnname($cursor,$i)."
".<br><br>ora_getcolumn($cursor,$i)."
".ora_getcolumn($cursor,$i)."
クエリ
レコードが返されませんでした

Count$numrows
n" ;

ora_close($cursor);

return;

}



// 主程序

if(!($conn=ora_logon("user@SID","password")))

{

echo "エラー: データベースに接続できません";

exit;

}

$qry="SELECT

deptno "デパート"

,empno "Emp"

,empnm " Name"

,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");

$title="ログイン手順";

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="ログイン手順";

echo "


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

n";

exit;

}

}

?>

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート