PHP+Oracle (OCI) 暫定版
オラクル
Oracle (OCI) から始める
データベースとして Oracle を選択する PHP ユーザーが増えるにつれ、PHP リリース環境で Oracle インターフェイスにアクセスする方法がますます重要になってきます。まず、シンプルで基本的かつより明示的な Oracle シナリオを簡単に見ていきます。 Oralce と Oralce8 は、PHP の OCI8 関数ライブラリを使用します。 PHP マニュアル (http://www.php.net/manual/ref.oci8.php) に簡単な説明があります。
これらの関数を使用すると、Oracle および Oracle7d データベースにアクセスできます。Oracle8 Call-Interface(OCI8) を使用します。 )。これらの拡張機能を使用するには、Oracle8 のクライアント ライブラリが必要です。
これらの拡張関数は、標準の Oracle 拡張関数よりも柔軟で、PHP のグローバル変数とローカル変数、および Oracle でのコンパイルをサポートしており、ユーザー補助変数を定義できます。
ここからは、Oracle のバージョンを指すために「Oracle」を使用します。この記事は、PHP と Oracle がインストールされ実行されていることを前提としています。 Oracle のヘルプは、http://www.oracle.com または http://technet.oracle.com で参照できます。
この記事のポイントは
1. ORALCLE に接続する
2. SQL ステートメントを構築して実行する
3. 追加機能として結果を「マークされたページ」に制限/オフセットする
非常に大規模なデータ セットから派生した制限/オフセットを表示するクエリを実行する方法を確認できます。
/*基本的な使い方から解決方法を紹介します。この例で使用されるファイルは、Rod Kreisler によって書かれた記事 (http://www.phpbuilder.com/columns/rod20000221.php3) の新しいバージョンです。ファイルの新しいバージョンは http://php.socket7.net にあります。 $offset が 0 または空に設定されている場合は、0 に設定します。
*/
if (empty($offset) || $offset < 0) {
$offset=0;
}
/*基本的な使い方から解決方法を紹介します。この例で使用されるファイルは、Rod Kreisler によって書かれた記事 (http://www.phpbuilder.com/columns/rod20000221.php3) の新しいバージョンです。ファイルの新しいバージョンは http://php.socket7.net にあります。 $offset が 0 または空に設定されている場合は、0 に設定します。
*/
if (empty($offset) || $offset < 0) {
$offset=0;
}
$limit = 3
/*
ORACLE_SID を直接使用します。データベースに接続するとき。 CGI として PHP を使用すると、不連続接続が使用されます。この例では、この不連続接続を使用してみましょう。 Windows ではこれはレジストリで設定できますが、UNIX では putenv() 関数 putenv("ORALCE_SID=ORASID"); を使用できます
または、データベースに接続するときに ORACLE_SID を直接参照することもできます。この例では、ORACLE_SID を直接参照してみましょう。
APACHE のモジュールとして PHP を使用すると、永続的な接続を使用できます。 PHP を CGI として使用する場合は非永続接続を使用しますが、この例では非永続接続を使用します。
*/
$conn = OCILogon("user_name", "password", "ORASID");
/*
エラー メッセージ。データベースが接続されていない場合は、エラー メッセージが表示され、スクリプトの実行は終了します。
*/
if (!$conn) {
echo "
ERROR - Could not connect to Oracle
";exit;
/* 接続が成功した場合、$connジョイナーです。そうしないと、スクリプトが終了し、「Oracle に接続できませんでした」というエラー メッセージが出力されます。
ここで SQL ステートメントの分析と作成を開始し、無制限のクエリ結果からカウント可能なレコードを取得します。
ここでのフォーマットステートメント「Select count(*) from table_name」は、データベース内で実行される SQL 関数である count() と同等です。 PHP に依存して計算された結果を返すよりも優れています。
*/
$sql = "table_name から count(*) を選択";
$stmt = OCIParse($conn, $sql);
if(!$stmt) {
echo "
エラー - 可能性がありますSQL ステートメントを解析しません。
";exit;
}
/*
間違った SQL ステートメントを入力するか、別のエラーが発生すると、「SQL を解析できません」というエラー メッセージが表示されます。$stmt は今は定義ステートメントです。
ここで parse ステートメントを実行します
*/
OCIExecute($stmt);
/*
これでステートメントが実行されましたが、ご覧のとおり、OCIParse で指定されているとおり、結果識別子は OCIExecute() から返されません。 () によって返される結果には、Oracle が必要とするすべての情報が含まれています。
ここで、このクエリの結果の選択を開始します。$total rows[0] には数値が含まれます。行が返されない場合は、エラーが表示され、スクリプトは終了します。
*/
OCIFetchInto($stmt, &$total_rows);
if ( !$total_rows[0] ) {
echo "
エラー - 行が返されません!
";}
/*
このコードはオプションですが、返される結果がわかりやすくなり、「合計 15 件のレコードがあり、結果 4 から 15 が表示されます。」のようなコメントが表示されます。 $end = ($begin+($limit-1));
if ($end > $total_rows[0]) {
$end = $total_rows[0];
echo " $total_rows[0] の結果。
n";
echo "$begin から $end までの結果を表示しています。 ;
n";
/*
さあ、本題に取り掛かります。元のステートメント識別子を解放してから SQL ステートメントを作成します。SQL ステートメントを分析して実行します。
コードを記述するとき 注: MYSQL とは異なり、 Oracle では、SQL ステートメント内の制限ステートメントはサポートされていません。特定の行を選択するにはさまざまな方法がありますが、最良の方法は、選択結果を一時テーブルに入れるか、すべての結果を「バッファリング」することです。このようなメソッドは、このチュートリアルの範囲外です。以下でさらに説明する、より単純なアプローチを使用します。
*/
OCIFreeStatement($stmt);
$sql = "テーブル名から * を選択";
$stmt = OCIParse($conn, $sql) {
echo "< h1>エラー - SQL ステートメントを解析できませんでした。";
exit;
}
OCIExecute($stmt);
/*
結果を表示します。最も簡単な方法は、結果コレクションでこのループを使用することです。最終結果の表示には HTML が使用されますが、この例は非常に単純なので、HTML は使用しません。
コードを記述するときの注意: 上で指定したように、Oracle には制限がないため、すべての結果セットから必要な結果を取り出し、すでに持っている結果を終了することによってこのループを実行する必要があります。
このセクションでは、いくつかの異なるアプローチを紹介しますが、実際には、このコードを記述するより良い方法があるはずです。しかし、私のアプローチは少し読みにくいとは思いますが、うまくいきます。
*/
$i=0;
$j=0;
while( OCIFetchInto($stmt, &$result_array) ) {
if ($i>=$offset) {
if ($j <$limit) ) {
for ($k=0; $k<=count($result_array); $k++) {
echo $result_array[$k]." ";
echo "
";
}
$i++;
}
echo "
";
/*
結果が現在のページに表示されます。ここで、訪問者が NEXT/PREV をクリックして他のページに移動できるようにします
* /
// 結果に必要なページ数を計算します。
$pages = intval($total_rows[0]/$limit);
// $pages は、残りの部分を除いた必要な合計ページ数になります
if ($total_rows [0]%$limit) {
// 余りがあるのでページを 1 つ追加します
$pages++;
}
// 最初のページが表示されるとき、PREV 接続は表示されません
if ($offset!= 0) {
$prevoffset=$offset-$limit;
echo "<
// 例 1 2 3 4 5 NEXT >> for ($i=1;$i<=$pages;$i++) {
// 現在のリンクを確認しますpage
if (($offset/$limit) == ($i-1)) {
// $i は現在のページと等しいので、リンクを表示しないでください
echo "$i "; else {
/ / $i は現在のページではないため、ページ $i へのリンクを表示します
$newoffset=$limit*($i-1);
echo " $i< /a> n";
}
}
//現在のページが最後のページかどうかを確認します
if (!((($offset/$limit)+1)==$pages) && $pages !=1) {
// まだ最後のページにないので、次のリンクを表示します
$newoffset=$offset+$limit;
echo "NEXT > ;>< ;/a>
n";
}
/*
これで Oracle の使用は完了したため、最後のステートメントのフラグを解放して終了します。
*/
OCIFreeStatement($stmt);
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。
