Ein Kollege hat gestern die Aufgabe erhalten, den Inhalt einer Oracle-Datenbank mit PHP zu verarbeiten. Allerdings kann PHP die Oracle-Erweiterung nicht direkt öffnen. Zum Öffnen ist etwas erforderlich.
Der erste Schritt ist zu Oracle Laden Sie offiziell ein Installations-Client-Paket herunter und suchen Sie Ihre ZIP-Datei, die der Systemversion entspricht unter Win (beachten Sie, dass es sich hier um die Systemversion handelt)
Stand 2015-06 -25, Die Download-Adresse lautet wie folgt: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
Wählen Sie beispielsweise Instant Client für Microsoft Windows ( x64) Da PHP OCI erweitert, müssen Sie die Version mit der vollständigsten entsprechenden Version auswählen. Möglicherweise benötigen Sie zum Herunterladen ein Konto. Der direkte Download ist nicht möglich den Link. Wenn Sie noch keinen haben, registrieren Sie sich einfach. Im zweiten Teil müssen Sie das Erweiterungspaket im Win-System herunterladen. Die Download-Adresse lautet http://pecl. php.net/package/oci8 Der folgende Unsinn soll Ihnen sagen, wie Sie ihn finden
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html Klicken Sie auf der
offiziellen Instant Client-Website unter dieser Adresse. Scrollen Sie bis zum Ende und klicken Sie auf „Verwandte Entwicklerzentren“ „PHP – OCI8-Erweiterung“
Klicken Sie dann auf die Registerkarte „Downloads“ und klicken Sie auf „OCI8 zu http://“. pecl.php.net/package/oci8
Dann werde ich nicht viel darüber sagen, wie man es herunterlädt
Schließen Sie hier den Download von zwei Zip-Paketen ab und konfigurieren Sie dann PHP
Drittens dekomprimieren Sie die erste heruntergeladene Datei, wechseln Sie in ein beliebiges Verzeichnis auf dem Computer. Nach der Dekomprimierung erhalten Sie das Dateiverzeichnis „_12_1“. Es wird empfohlen, es zu entfernen um die Umgebungsvariable zu ändern, wenn Sie die Version in Zukunft ändern
Geben Sie dieses Verzeichnis ein und doppelklicken Sie, um adrci.exe zu öffnen
um das folgende Befehlszeilenfenster zu erhalten, das beweist, dass dieser Client vorhanden ist lokal verfügbar
Kopieren Sie das Verzeichnis, meins ist F:devinstantclient, konfiguriert für die Pfadumgebungsvariable des Systems,
Viertens entpacken Sie das heruntergeladene DLL-komprimierte Paket und kopieren Sie es php_oci8 darin. dll php_oci8_11g.dll php_oci8_12c.dll Ich habe derzeit diese drei in der PHP-Erweiterungspaketdatei, normalerweise ...
im /php/ext/-Verzeichnis. Eigentlich brauchen Sie das nicht um es zu ersetzen, aber es wird immer noch empfohlen, es zu ersetzen,
und dann php.ini zu öffnen und die Erweiterung zu öffnen. Wie auch immer, PHP hat es ursprünglich nicht Das obige Paket wurde geschrieben. Es sollte höchstens in Ordnung sein. Laden Sie ein paar weitere Bibliotheken
extension=php_oci8.dll ; 10gR2 Instant Client
extension=php_oci8_11g.dll ; Verwendung mit Oracle 11gR2 Instant Clientextension=php_oci8_12c.dll ; Verwendung mit Oracle 12c Instant Client
Dann starten Sie den httpd-Dienst neu und öffnen Sie phpinfo(); Sie sollten
Auf diese Weise sehen können. Dies bedeutet, dass die Erweiterung erfolgreich geöffnet wurde
PDO support | enabled |
---|---|
PDO drivers | mysql, oci, odbc |
OCI8 Support | enabled |
OCI8 DTrace Support | disabled |
OCI8 Version | 2.0.8 |
Revision | $Id: f04114d4d67cffea4cdc2ed3b7f0229c2caa5016 $ |
Oracle Run-time Client Library Version | 12.1.0.2.0 |
Oracle Compile-time Instant Client Version | 10.2 |
Hier ist eine Beispiel für die Verbindung zum Originaltext http://www.orczhou.com/index.php/2010/09/php-oci8-oracle/
An dieser Stelle der gesamte Ausbau und Anschluss ist abgeschlossen
<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> ?>