1、如下是基于 wampServer 的php 拜访oracle数据库的操作步骤:
第一步:让PHP支持OCI
起首,装置PHP的集成运转环境,网上有不少集成,我装置的是WampServer的(详细的装置办法也能够参考以前写的另外一篇文章),装置好后,从装置目次中找到php.ini文件,比方我内陆的门路是D:\wamp\bin\php\php5.3.3,将php.ini中的php_oci8.dll的;去掉,也就是把正文去掉,相称于能够应用php_oci8了。
相干保举:《php教程》
第二步:而后wampserver运转后,将php>php extentions中将php_oci8打上勾
【其余的集成环境其实也是能够的,比方phpStudy,咱们能够间接从php扩大的选项里打勾对应的】。
第三步:oracle 数据库文件设置装备摆设
关于装置有Oracle客户真个PC机,能够正在Oracle装置设置装备摆设文件,tnsnames.ora文件,此文件门路是装置oracle的门路,比方我本机的是
F:\oracle\product\10.2.0\client_1\NETWORK\ADMIN ,所连的192.168.1.198数据库,此中的设置装备摆设概况以下(假如显示 127.0.0.1 默许为本机):
(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.198)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
第四步:检测oci8能否设置装备摆设胜利
1.普通状况下,关上localhost即能显示 phpinfo.php界面,外面即为 php 信息。可采纳 “Ctrl+F”搜寻“oci”,查看能否有对应的oci模块,当然有一点php根底的齐全能够间接拜访本人编写的文件,记患上外面退出“echo phpinfo();”便可。
2.没有要快乐太早,走到这一步,至多我是查没有到的对应信息的,这时候能够依照网上的一些倡议,把php的ext目次下的php_oci8.dll拷到system32目次下
3.最初倡议重启效劳,最佳是重启电脑(我正在测试时发现,重启效劳没用,有一次是有意中 刷新出了oci扩大,以是假如操作办法没错,我倡议进行重启。)
2、代码测试近程衔接 orcal 数据库(倡议可用本人的oracle客户端试着能否能衔接对方的效劳端,以保障操作的胜利率)
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/12/7 * Time: 16:25 */ echo 'ff'; //进行衔接数据库的参数设置装备摆设 $dbstr ="(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.11.198)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) (INSTANCE_NAME = orcl)))"; //phpinfo(); $conn = oci_connect('scott','tiger',$dbstr);//假如去掉最初一个参数或许为“ ”,默许衔接本机 $stmt = oci_parse($conn, "select * from mono"); oci_execute($stmt); $nrows = oci_fetch_all($stmt, $results); if ($nrows > 0) { echo "<table border=\"1\">\n"; echo "<tr>\n"; foreach ($results as $key => $val) { echo "<th>$key</th>\n"; } echo "</tr>\n"; for ($i = 0; $i < $nrows; $i++) { echo "<tr>\n"; foreach ($results as $data) { echo "<td>$data[$i]</td>\n"; } echo "</tr>\n"; } echo "</table>\n"; } else { echo "No data found<br />\n"; } echo " $nrows Records Selected<br />\n"; oci_free_statement($stmt); oci_close($conn); ?>
(参考网友的一点阐明)
两种形式以及oracle数据库建设链接:
1.$conn = oci_connect('username','password',"(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=192.168.1.198)(PORT = 1521)) (CONNECT_DATA =(SID=orcl)))");
2.$conn = oci_connect('username','password','192.168.1.198/orcl');
有的时分第一种形式没有行,应用第二种,外面的几个参数辨别是用户名、明码、oracle效劳地点,此中orcl是效劳名(但正在我的机械上,后者无奈拜访)
另外提供一种简略的测试代码,绝对而言,只是测试衔接状况,更为不便:
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>php语句完结符</title> </head> <body> <?php $dbstr ="(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.11.102)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) (INSTANCE_NAME = orcl)))"; $dbconn=oci_connect('scott','tiger',$dbstr); if($dbconn!=false) { echo "衔接胜利".'<br/>'; if(OCILogOff($dbconn)==true) { echo "封闭衔接胜利!".'<br/>';// } } else { echo "衔接失败".'<br/>'; } ?> </body> </html>
总结提醒:
使你的php支持oracle,依照如下步骤便可:
1.装置php环境,找一下appserv或许xampp,一键装置,很不便。
2.把php的ext目次下的php_oci8.dll拷到system32目次下。
3.修正php.ini文件中的设置装备摆设,去掉 ;extention = php_oci8.dll,去掉后面的分号。
4.重启apache。
留意:
1.有时分你其实不会留意到的一点失误会糜费不少工夫,我还要提示的是,请记患上关上oracle的效劳监听!!
2.请记患上作为效劳真个PC机,要封闭防火墙!!
3.apache的设置装备摆设文件一样首要,修正httpd.conf文件,Deny——>Allow
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow # Deny from all Allow from all #容许一切拜访 Satisfy all </Directory> <Directory /> ... ... # Require local Options Indexes FollowSymLinks # onlineoffline tag - don't remove Order Deny,Allow Allow from all # Require local </Directory>
以上就是php怎样近程衔接oracle的具体内容,更多请存眷资源魔其它相干文章!
标签: php 连接 php开发教程 php开发资料 php开发自学 oracle
抱歉,评论功能暂时关闭!