昨日、同僚が 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 ドライバー
有効 |
OCI8 バージョン | 2.0.8 |
リビジョン | $Id: f04114d4d67cfea4cdc2ed3b7f0 229c2caa5016 $ |
Oracle ランタイム クライアント ライブラリのバージョン | 12.1.0.2 .0 |
Oracle コンパイル時インスタント クライアント バージョン | 10.2 |
これは拡張機能について説明しています オープンは成功しました | |
ここに接続する例があります原文 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> ?> ログイン後にコピー |