ホームページ >バックエンド開発 >PHPチュートリアル >4. データベースへの接続_PHP チュートリアル

4. データベースへの接続_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:08:44837ブラウズ


4. データベース接続


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 "SUCCESS ! データベースに接続しました< B>n";

}

else

{

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

}

Ora_Logoff($conn);

phpinfo();

?>

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



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

{

echo "データベースへの接続に失敗しました";

終了;

}

echo "接続として接続しました - $conn< br>n";

echo "カーソルを開きます。..
n";

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

echo "カーソルを開きました - $カーソル
n";

$qry="デュアルからユーザー、sysdateを選択";

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

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

echo "クエリを解析しました
n";

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

ora_exec($cursor); printoraerr($ カーソル);

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

echo "カーソルを取得中...
n";

while(ora_fetch($カーソル))

{

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

$sysdate=ora_getcolumn($cursor,1);

echo " row = $user, $sysdate
n";

}

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

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

ora_close($cursor);

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

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

ora_logoff($conn);

echo "Logged off from oracle
n ";

?>

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



4.3 表示results



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


f​​unction printoraerr($in_cur, $conn)

{

// Oracle にエラーがあるかどうかを確認します

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

// ポインタがアクティブになるたびに、この関数は Oracle にリクエストした後に呼び出されます

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

if(ora_errorcode($ in_cur))

{

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

ora_logoff($conn);

exit;

}

return;

}



function exequery($w_qry,$conn)

{

$cursor= ora_open ($conn);

ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn);

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

$numrows=0;

$w_numcols=ora_numcols($cursor);

// ヘッダーを表示

echo "

CELLPADDING="2">

n";

for ($i=0) ;$i<$w_numcols;$i++)

{

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

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

else

{

echo "
n";

echo "
n";

echo "
n";

echo "
n";

}

echo "n";

ora_close($cursor);

return;

}



// メインプログラム

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

{

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

exit;

}

$qry="SELECT

deptno "部署"

,empno "従業員"

,empnm "名前"

,salary "給与"

FROM

employee

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

終了;

}

}

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/314697.html技術記事 4. データベース接続 PHP を使用すると、データベースに簡単に接続し、データを要求して Web サイトに表示したり、データベース内のデータを変更したりすることができます。 MySQL は非常に人気のあるデータです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
".ora_columnname($cursor,$i)."n";

}

echo "
< ;PRE>".

ora_getcolumn($cursor,$i)."
"。 ora_getcolumn($cursor,$i)."
クエリ
レコードが返されません

Count$numrows