目次
Oracle データベースに接続するための ThinkPHP の詳細なチュートリアル、thinkphporacle
ホームページ バックエンド開発 PHPチュートリアル ThinkPHP Oracle データベースへの接続に関する詳細なチュートリアル、thinkphporacle_PHP チュートリアル

ThinkPHP Oracle データベースへの接続に関する詳細なチュートリアル、thinkphporacle_PHP チュートリアル

Jul 12, 2016 am 08:53 AM
thinkphp

Oracle データベースに接続するための ThinkPHP の詳細なチュートリアル、thinkphporacle

1. 動作環境のセットアップ
システム: Windows7 Ultimate 64 ビット
PHP 環境: wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24 32- bit版
ダウンロードアドレス:http://www.wampserver.com/ja/


ThinkPHP: 3.0 正式版
ダウンロードアドレス: http://thinkphp.cn/down.html


Oracle: Orcale_11gR2 32ビット版
ダウンロードアドレス: http://www.oracle.com/technetwork/cn/indexes/downloads/index.html


データベース操作ツール:PLSQL Developer 32-bit
ダウンロードアドレス:http://www.allroundautomations.com/plsqldev.html


開発ツール: NetBeans IDE 7.1.2
ダウンロードアドレス: http://netbeans.org/downloads/index.html 単一の PHP バージョンをダウンロードするだけです

注: ソフトウェアの「ビット」は非常に重要なので、通常の状況では、システムは 64 ビットであるため、64 ビットのソフトウェアを使用するのが最善ですが、ここではシステムを除いて、すべてに 32 を選択 このビットには理由があって、PLSQL Developer および WAMP の PHP 拡張機能を操作することが目的です。 PLSQL Developerには64ビット版がないためです。 64 ビットの Oracle データベースを使用して 32 ビットのクライアントをインストールできると言う友人もいますが、私の操作方法が気に入らない場合は、それを避けてください。もちろん、PLSQL Developer を使用せずに Oracle 独自の SQL Developer を使用する場合は、64 ビットまたは 32 ビットのどちらをインストールするかはあなた次第です。 PHP は、Oracle データベースに接続するために対応する拡張機能を開く必要があります。PHP 拡張機能もデータベース クライアントのビット数に対応する必要があるため、この拡張機能にはデータベース クライアントのサポートも必要です。冗長の終わり。

2. 環境設定
1. Oracle のインストールは自分で解決できますが、NetBeans IDE 7.1.2 も自分で解決できます。

2. Wamp のインストールについては説明しません。方法がわからない場合は、DOS から学び直してください。

3. WAMP は、Wamp がインストールされているフォルダーの下の www に PHP Web ページのフォルダーを定義します。つまり、D:WAMPwww です。当面はその他のカスタム変更は行いません。 wamp を起動します。システム トレイ アイコンが緑色の場合は、起動が正常であることを意味します。

4. localhost を開くと、次のインターフェイスが表示されます。これは、環境設定が基本的に OK であることを意味します。なぜ基本的なのかというと、Oracle の構成がまだ設定されていないからです。

5. 図に示すように、PHP 拡張機能メニューを開き、[PHP 拡張機能] を左クリックし、[php-oci8 拡張機能] をクリックします。この時点で、WAMP が再起動します。再起動後、緑色に変わります。

6. localhost ページを再度開きます。図 4 に示す表示が表示された場合は、PHP が現在 Oracle をサポートしていることを意味します。

私が使用している wamp クライアントと oracle クライアントは両方とも 32 ビットであることに注意してください。一方が 64 ビットである場合、oci 拡張子を開くことができず、自動環境監視ページに oci8 が表示されません。 PL/SQLを使用しない前提で、32ビットOracleと32ビットWAMPの組み合わせ、または64ビットOracleと64ビットWAMPの組み合わせでなければなりません。それ以外の場合は避けてください。

3. ThinkPHP の構成
1. ダウンロードした 3.0 正式バージョンを解凍します。これは、プロジェクト内にあるコアとなる ThinkPHP フォルダーのみです。
2. IDE を使用して新しいプロジェクトを作成します。他のフォルダーをカスタマイズする必要がある場合は、ここでは変更しません。
3. Thinkphp フォルダーをプロジェクト フォルダーにコピーし、新しい php ファイルを作成し、index.php という名前を付けます。
4. これらのファイルは既に IDE に表示されています。index.php を開き、次の内容を書き込みます。 リーリー


5. ブラウザで localhost/プロジェクト名/index.php を開くと、Thinkphp が関連するファイルとフォルダーを生成します。
6. 設定ファイルを操作して、Conf フォルダー内の config.php ファイルを次のように変更します。 リーリー

Oracle データベースと mysql は構造が異なります。通常、デフォルトでインストールされるデータベース名は orcl です。複数のデータベース モニターを使用する場合は、特定のモニター フィールドに従って設定する必要があります。例: 私のローカル データベースは Orcl で、外部ネットワーク上の別のデータベースを監視しています。この外部ネットワーク データベースに接続する必要がある場合、記述する必要があるデータベース名は orcl2 です。


7. 上記の設定後、すでに Oracle データベースに接続できますが、thinkphp の実際の操作では何に注意する必要がありますか?

最近、THinkPHP による Oracle データベースへの接続に関する問題をいくつか集めました。多くの友人が mysql に接続する方法に従っているため、Oreale で通常使用できないメソッドがいくつか発生しています。例:findAll、Selectメソッドが使用できず、必要なデータが取得できません。 Create メソッドと add メソッドでは、データを作成してデータベースに書き込むことはできません。

実際、私は以前の問題に基づいて数日間デバッグし、問題を見つけ、私自身の小さなプロジェクトの実践でそれを正常に使用できたので、今から私の経験を皆さんと共有します。

1. データベース接続と設定ファイルの詳細については説明しません。データテーブルの例に基づいて操作のみを説明します。

2、テーブル構造は次のとおりです:


3. このテーブルには ID 主キー、ユーザー名、パスワードの 3 つのフィールドがあります。Oracle データベースはテーブル名とフィールドを大文字に変換し、ID 主キーの自動インクリメントをサポートしていないため、別の方法を使用するしかありません。この機能を実現するには、例えばID自動シーケンス+ID自己インクリメントを実現するトリガーを使用します。

4. ThinkPHP では、Action はコントローラー、Model はモデル、ビューはテンプレートによって表されます。

まずコントローラーについてですが、リストの追加と取得の方法のみ紹介します。

次に、モデルについて話しますが、これが成功の主な理由です。なぜ? ThinkPHP にはフィールド マッピングがあり、MYSQL のサポートに最適です。基本的に MODEL を記述する必要はありませんが、M->add() を使用してデータを追加する場合、フィールドは $this になります。 -> _facade() メソッドは除外します。この方法で生成された SQL ステートメントは実行できないため、間違っているはずです。その結果、データをデータベースに追加できず、select() メソッドもフィルターされます。

繰り返しになりますが、ブレークポイントがフィルタリングされるとき、このフィルタリング メソッドはフィールド マッピングの配列を持ちます。このフィルタリング メソッドは、このフィールド配列と比較します。その結果、デバッグしたところ、新しい MODEL はフィールド マッピングをまったく追加しておらず、追加されたデータ フィールドに 1 つずつ対応することはできませんでした。これが間違いの核心です。

以下で解決策について話しましょう。基本的な MVC 構造によれば、PHP、JAVA、.NET はすべてそのような構造になっており、厳密な基準に従って MODEL 層のコードを記述する必要があります。つまり、データベースフィールドがマップされていると一致している必要があります。しかし、mysql を使用する多くの人は、単に MODEL でコードを記述しません。この習慣を Oracle で使用すると問題が発生します。

5. 次に、上記のデータ テーブルのコードを作成します。

私のアクションは次のようになります: UserAction.class.php。コントローラーでは追加と検索の例のみを作成するため、コードは次のとおりです:

} else
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public function index() {         header("Content-Type:text/html; charset=utf-8");           $M_User new UserModel();           $User_List $M_User->select();           $this->assign('Title''用户管理');           $this->assign('UserList'$User_List);           $this->display(); }       //添加用户提交处理 public function Create_Post() {         $M_User new UserModel();         $data['username'] = $this->_post('username');         $data['password'] = md5($this->_post('pwd'));           if ($M_User->create()) {             $Query_Result $M_User->add($data);             if (false !== $Query_Result) {                 $this->success('用户添加成功');             else<code class="php keyword">else { {<code class="php spaces">                $this->error('用户添加错误'); <code class="php spaces">            }$this<code class="php spaces">        else {->error(            header("Content-Type:text/html; charset=utf-8");'用户追加错误'<code class="php spaces">            exit($M_User->getError() . ' [ <a href="javascript:history.back()">返 回</a> ]'););<code class="php spaces">        } <code class="php plain">}}
{<p> <code class="php space">

header(

"Content-Type:text/html; charset=utf-8"

);<p> <code class="php space">

終了<p><code class="php plain">(

$M_User<p><code class="php plain">->getError() .

' [ <a href="javascript:history.back()">返し</a> ]'<p><code class="php plain">);

<p><code class="php plain">}

}<p> </p> <p> </p> <p> </p> アクション解決:<table border="0" cellspacing="0" cellpadding="0"> <tbody>$M_User=新しいユーザーモデル();<tr> <td class="code"> .NET を使用するため、この方法を記述するのが最適です。これは、特定のモデルに対して実行され、ユーザー テーブルに対して実行されることが規定されています。 <code class="php keyword">protected $fields = array(POST データを取得するためのコードはあまり解決されていません。             'id', 'username', 'password'$M_User->create();<code class="php spaces">        
); これは ThinkPHP のメソッドの 1 つであり、非合法的なセキュリティを通過して使用することができます。 $Query_Result = $M_User->add($data); この段階はデータの追加であり、追加するデータを指定することも、この段階では $M_User の例に従ってフィールドを通過する必要があるためです。代価不解释。官方文档都有。


我のモデルは次のとおりです:UserModel.class.php

protected<p align="left"> <code class="php 変数">$fields<div style="display:none;"> <code class="php plain">= <span id="url" itemprop="url"><code class="php キーワード">array(<span id="indexUrl" itemprop="indexUrl"> <code class="php space"> 'id'<span id="isOriginal" itemprop="isOriginal"><code class="php plain">, 'username'<span id="isBasedOnUrl" itemprop="isBasedOnUrl"><code class="php plain">、'パスワード'<span id="genre" itemprop="genre"> <code class="php space"> );<span id="description" itemprop="description"> </span>

モデルの解決策: これは、新しい $M_User のマッピング フィールド数が空になることはなく、このような能力と POST のデータが処理されるため、この方法が正常に認識され、通過されないことに注意してください。
🎜 🎜6、上記の操作を経て、Oracle のデータベース操作が完了しました。分数(limit)、find()、findAll などを含む、ThinkPHP が提供するメソッドを使用してデータを操作することもできます。 🎜🎜🎜http://www.bkjia.com/PHPjc/1122766.html🎜🎜www.bkjia.com🎜🎜本当🎜🎜http://www.bkjia.com/PHPjc/1122766.html🎜🎜技術記事🎜🎜 ThinkPHP 接続 Oracle データ架库の详细教程、thinkphporacle 一、操作環境ボタン建系:Windows7 旗舰版 64 位 PHP 環境:wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.2...🎜🎜🎜🎜 🎜🎜
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

thinkphpプロジェクトの実行方法 thinkphpプロジェクトの実行方法 Apr 09, 2024 pm 05:33 PM

ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

thinkphp にはいくつかのバージョンがあります thinkphp にはいくつかのバージョンがあります Apr 09, 2024 pm 06:09 PM

ThinkPHP には、さまざまな PHP バージョン向けに設計された複数のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

thinkphpの実行方法 thinkphpの実行方法 Apr 09, 2024 pm 05:39 PM

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

laravelとthinkphpではどちらが優れていますか? laravelとthinkphpではどちらが優れていますか? Apr 09, 2024 pm 03:18 PM

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重点を置いて、一般に Laravel よりもパフォーマンスが優れています。 Laravel は優れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法 開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法 Nov 22, 2023 pm 12:01 PM

「開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法」 インターネット技術の急速な発展に伴い、Web アプリケーションには、多数の同時リクエストと複雑なビジネス ロジックを処理するための要件が​​ますます高まっています。システムのパフォーマンスとユーザー エクスペリエンスを向上させるために、開発者は多くの場合、電子メールの送信、ファイルのアップロードの処理、レポートの生成など、時間のかかる操作を実行するために非同期タスクの使用を検討します。 PHP の分野では、人気のある開発フレームワークとして ThinkPHP フレームワークが、非同期タスクを実装するための便利な方法をいくつか提供しています。

thinkphpのインストール方法 thinkphpのインストール方法 Apr 09, 2024 pm 05:42 PM

ThinkPHP のインストール手順: PHP、Composer、および MySQL 環境を準備します。 Composer を使用してプロジェクトを作成します。 ThinkPHP フレームワークと依存関係をインストールします。データベース接続を構成します。アプリケーションコードを生成します。アプリケーションを起動し、http://localhost:8000 にアクセスします。

thinkphpのパフォーマンスはどうですか? thinkphpのパフォーマンスはどうですか? Apr 09, 2024 pm 05:24 PM

ThinkPHP は、キャッシュ メカニズム、コードの最適化、並列処理、データベースの最適化などの利点を備えた高性能 PHP フレームワークです。公式パフォーマンステストでは、1秒あたり10,000以上のリクエストを処理できることが示されており、実際のアプリケーションではJD.comやCtripなどの大規模なWebサイトやエンタープライズシステムで広く使用されています。

開発に関する提案: API 開発に ThinkPHP フレームワークを使用する方法 開発に関する提案: API 開発に ThinkPHP フレームワークを使用する方法 Nov 22, 2023 pm 05:18 PM

開発の提案: API 開発に ThinkPHP フレームワークを使用する方法 インターネットの継続的な発展に伴い、API (アプリケーション プログラミング インターフェイス) の重要性がますます高まっています。 API は、異なるアプリケーション間の通信の橋渡しとなるもので、データの共有や関数の呼び出しなどを実現し、開発者に比較的簡単かつ迅速な開発手法を提供します。優れた PHP 開発フレームワークである ThinkPHP フレームワークは、効率的でスケーラブルで使いやすいです。

See all articles