ホームページ  >  記事  >  バックエンド開発  >  独自の WAMP 環境を構成し、Oracle 関数ライブラリ oci を拡張します。

独自の WAMP 環境を構成し、Oracle 関数ライブラリ oci を拡張します。

WBOY
WBOYオリジナル
2016-08-08 09:22:101237ブラウズ

昨日、同僚が PHP を使用して Oracle データベースの内容を処理するというタスクを受け取りました。ただし、PHP で Oracle 拡張機能を開くには、MySQL のように何かをダウンロードする必要があります。

最初のステップは、ダウンロードすることです。 Oracle 公式 Web サイトからクライアント パッケージをインストールし、win でシステム バージョン に対応する zip を見つけます (ここにあるのは システム バージョン です)

2015 年 6 月 25 日の時点で、ダウンロード アドレスは次のとおりです http ://www.oracle.com/technetwork/database/features /instant-client/index-097480.html

たとえば、Microsoft Windows (x64) 用のインスタント クライアントを選択します。PHP は OCI を拡張するため、最も完全なものを選択する必要があります。対応するバージョンには OCI がありません。アカウントをお持ちの場合は、リンクを使用して直接ダウンロードする必要がある場合があります。 2 番目の部分では、Win システムに拡張パック (.dll ファイル) をダウンロードする必要があります。ダウンロード アドレス http:// pecl.php.net/package/oci8 は、その方法を示しています。見つけるには

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html このアドレスをクリックしてください

公式インスタント クライアント サイトを最後までスクロールして、[PHP -] をクリックします。関連開発者センターの「OCI8 拡張機能」

その後、タブがダウンロードされます。OCI8 をクリックして http://pecl.php.net/package/oci8 にアクセスします

その後、ダウンロード方法が機能しません

これで 2 つのダウンロードが完了しました。 zip パッケージを作成し、PHP を設定します

3 番目に、ダウンロードした最初のファイルを解凍し、コンピューター上の任意のディレクトリに移動します。解凍後、ファイル ディレクトリ instantclient_12 _1 が得られます。最後に「_12_1」を付けることをお勧めします。これにより、将来バージョンを変更するときに環境変数を変更する必要がなくなります。このディレクトリを入力してダブルクリックして adrci.exe を開くと、このクライアントが使用可能であることがわかります。ディレクトリをローカルにコピーします。私のディレクトリは F :devinstantclientです。 システムのパス環境変数を設定します。

4 番目に、ダウンロードした DLL 圧縮パッケージを解凍し、php_oci8.dll php_oci8_11g.dll php_oci8_12c.dll をコピーします。 PHP 拡張パッケージ ファイル (通常は /php/ext/ ディレクトリ内にあります)

実際には、置き換える必要はありませんが、置き換えることをお勧めします

次に、php.ini を開き、最後の拡張子は後から追加されたもので、php には元々この拡張子はありませんでしたが、php

を実行するときに、上記のパッケージにすべての dll ファイルを記述するのは間違いではありません。

extension=php_pdo_oci.dll

extension=php_oci8.dll ; Oracle 10gR2 インスタント クライアントで使用する

extension =php_oci8_11g.dll ; Oracle 11gR2 インスタント クライアントで使用する

extension=php_oci8_12c.dll ;

その後、再起動しますhttpd サービスを開き、phpinfo() を開くと、

PDO サポート

が有効になっている

PDO ドライバー

mysql、oci、odbcOC が表示されるはずです。 I8 サポート有効OCI8 DTrace サポート
無効OCI8 バージョン2.0.8リビジョン$Id: f04114d4d67cfea4cdc2ed3b7f0 229c2caa5016 $Oracle ランタイム クライアント ライブラリのバージョン12.1.0.2 .0Oracle コンパイル時インスタント クライアント バージョン 10.2最後のステップは oracle データベースに接続することです 以上で、全体の展開と接続は完了です
これは拡張機能について説明しています オープンは成功しました
ここに接続する例があります原文 http://www.orczhou.com/index.php/2010/09/php-oci8-oracle/
<span> 1</span> <?<span>php  
</span><span> 2</span><span>//</span><span>配置信息</span><span> 3</span><span>$ora_host</span> = "172.16.1.150"<span>;
</span><span> 4</span><span>$ora_port</span>="1521"<span>;
</span><span> 5</span><span>$ora_sid</span> = "cop"<span>;
</span><span> 6</span><span>$ora_username</span> = "webdev"<span>;
</span><span> 7</span><span>$ora_password</span> = "webdev"<span>;
</span><span> 8</span><span>$charset</span> = "UTF8"; <span>#</span><span>## zhs16gbk ###
</span><span> 9</span><span>10</span><span>//构建Easy Connect string
</span><span>11</span><span>//(如果tnsnames.ora中已经有了,可以直接使用Connect Name)</span><span>12</span><span>$ora_connstr</span> = "<span>(description=(address=(protocol=tcp)
</span><span>13</span> (host=".<span>$ora_host</span>.")(port=".<span>$ora_port</span>."<span>))
</span><span>14</span> (c>$ora_sid</span>.")))"<span>;
</span><span>15</span><span>//</span><span>连接数据库</span><span>16</span><span>$conn</span> = oci_connect(<span>$ora_username</span>, <span>$ora_password</span>,<span>$ora_connstr</span><span>);
</span><span>17</span><span>//</span><span>执行Query,这里$res接收的是一个boolean值</span><span>18</span><span>$stid</span> = oci_parse(<span>$conn</span>, 'select * FROM dq_try_app'<span>);
</span><span>19</span><span>$res</span> = oci_execute(<span>$stid</span><span>);
</span><span>20</span><span>21</span><span>//</span><span>在while循环中使用oci_fetch_array遍历结果。</span><span>22</span><span>while</span> (<span>$row</span> = oci_fetch_array(<span>$stid</span>, OCI_ASSOC+<span>OCI_RETURN_NULLS)) {
</span><span>23</span><span>24</span><span>foreach</span> (<span>$row</span><span>as</span><span>$item</span><span>) {
</span><span>25</span><span>echo</span><span>$item</span>."***"<span>;
</span><span>26</span><span>    }
</span><span>27</span><span>echo</span> "<br>"<span>;
</span><span>28</span><span>29</span><span>}
</span><span>30</span><span>//</span><span>var_dump($stid);   </span><span>31</span> ?>
以上、私が構築したWAMP環境と拡張Oracle関数ライブラリociを内容も含めて紹介しましたので、PHPチュートリアルに興味のある友人の参考になれば幸いです。

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