A colleague received a task yesterday to use PHP to process the contents of the Oracle database. However, opening the Oracle extension in PHP cannot be used directly like MySQL. It requires something to open it
The first step is to download an install client package from the Oracle official website. , find your zip corresponding to the system version under win (note here is the system version)
As of 2015-06-25, the download address is as follows http://www.oracle.com/technetwork/database/features /instant-client/index-097480.html
For example, choose Instant Client for Microsoft Windows (x64). Because PHP extends OCI, you must choose the most complete corresponding version. Others do not have OCI. You may need to download it here. If you have an account, you can download it after verification. It is not easy to download directly using the link. If you don’t have one, just register. For the second part, you need to download the expansion pack in the win system, which is the .dll file. Download address http:// pecl.php.net/package/oci8 The following paragraph of nonsense tells you how to find it
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html Click on this address
official Instant Client site. Scroll to the end and click "PHP - OCI8 extension" in Related Developer Centers
Then the tab downloads Click OCI8 to http://pecl.php.net/package/oci8
Then how to download will not work Enough to say
Here you have finished downloading two zip packages, and then configure PHP
Third, decompress the first downloaded file, go to any directory on your computer, and after decompression you will get the file directory instantclient_12 _1 It is recommended to put the "_12_1" at the end Remove it, and you won’t need to touch the environment variable when changing the version in the future. After entering this directory, double-click to open adrci.exe. You will get the following command line window, which proves that this client is available locally. Copy the directory, mine is F :devinstantclient Configure the path environment variable of the system,
Fourth, unzip the downloaded dll compressed package, copy the php_oci8.dll php_oci8_11g.dll php_oci8_12c.dll I currently have these three, to the PHP expansion package file, usually Yes... in the /php/ext/ directory
In fact, you don’t need to replace it, but it is recommended to replace it.
Then open php.ini and open the extension. The last one was added later, and php didn’t originally have it. , anyway, it shouldn’t be wrong to write all the dll files in the package above. At most, load a few more libraries when running php
extension=php_pdo_oci.dll
extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Clientextension =php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client
extension=php_oci8_12c.dll ; Use with Oracle 12c Instant ClientThen restart the httpd service and open phpinfo(); You should be able to seePDO support
enabled
PDO drivers
enabled |
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 |
This explains the extension The opening was successful | |
Here is an example of connecting to the original text 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> ?> Copy after login |