后端连接oracle,【后端开发】php怎么远程连接oracle
一、以下是基于 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扩展,所以如果操作方法没错,我建议进行重启。)
二、代码测试远程连接 orcal 数据库(建议可用自己的oracle客户端试着是否能连接对方的服务端,以保证操作的成功率)
/**
* 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 "
echo "
\n";
foreach ($results as $key => $val) {
echo "
$key\n";
}
echo "
\n";
for ($i = 0; $i < $nrows; $i++) {
echo "
\n";
foreach ($results as $data) {
echo "
$data[$i]\n";
}
echo "
\n";
}
echo "
\n";
} else {
echo "No data found
\n";
}
echo " $nrows Records Selected
\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是服务名(但在我的机器上,后者无法访问)
另外提供一种简单的测试代码,相对而言,只是测试连接情况,更为方便:
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 "连接成功".'
';
if(OCILogOff($dbconn)==true)
{
echo "关闭连接成功!".'
';//
}
}
else
{
echo "连接失败".'
';
}
?>
总结提示:
使你的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
Options FollowSymLinks
AllowOverride None
Order deny,allow
# Deny from all
Allow from all
#允许所有访问
Satisfy all
...
...
# Require local
Options Indexes FollowSymLinks
# onlineoffline tag - don't remove
Order Deny,Allow
Allow from all
# Require local
后端连接oracle,【后端开发】php怎么远程连接oracle相关推荐
- opcclient远程连接opc服务器_软件 | 服务器远程连接软件MobaXterm
今天和大家分享一款远程连接软件 -- MobaXterm在使用服务器时,我们大多都是通过远程连接软件进行的.使用远程连接软件可以实现文件在电脑和服务器之间互相传输.我们在服务器中对数据进行的一切操作, ...
- Centos6.8下安装Mysql5.6.14,连接mysql及增删改查,通过Mysql-Front远程连接(开启端口、允许远程连接)
Centos6.8下安装Mysql5.6.14,连接mysql及增删改查,并能通过Mysql-Front远程连接(开启端口.允许远程连接) 概述: 通过源代码安装高版本的5.6.14. 正文: 一:卸 ...
- 使用putty连接linux服务器拒绝,使用Putty远程连接Linux系统遇到的问题及解决方法...
Q:在login as: 输入用户名sbd@sbd's password: 光标不动.即使输入正确的 密码也是没有反应? A:你好,那是因为SSH登陆不同于telnet登陆,只要你密码输入正确,光标动 ...
- CentOS7.4静默安装Oracle,并通过工具远程连接
1.准备环境 1.工具Xshell用于操作CentOS7.4 2.CentOS7.4[虚拟机]安装oracle[oracle的版本是11g] 若用oracle 12c,环境依赖包可能会需要重新整理,另 ...
- linux远程开发——使用vs2019远程连接linux
目录 步骤 一.新建项目 二.远程连接 三.主函数测试 四.vs2019中linux控制台打印中文乱码问题 步骤 一.新建项目 1.打开vs2019,选择创建新项目. 2.选择c++.Linux,创建 ...
- nginx mysql设置远程连接超时_docker -mysql服务设置远程连接 解决1251 client does not support ..问题...
前提: 安装MYSQL实例 docker pull mysql 启动mysql(做了端口映射) [root@localhost ~]# docker run -p 3306:3306 --name m ...
- mysql与sqlyog连接_如何用sqlyog实现远程连接mysql
1,sqlyog客户端,用root用户远程链接mysql时,提示"访问被拒绝",在网上搜索了一下原因. 原来是mysql没有授权其远程链接,所以你只能在客户端里面链接. 怎么解决呢 ...
- ubuntu远程无法连接到服务器配置,解决ubuntu无法远程连接
在装Ubantu的时候可能有的小伙伴忽略了一点,忘记了在一个地方打一下空格,导致后面无法远程连接. 如果能在这里打上对勾就可以不用后面的操作了. 首先要切换到root账号 sudo passwd ro ...
- 测试远程连接mysql_让MYSQL服务支持远程连接(允许mysql远程登录)测试可行
一般来说远程连接MYSQL数据库,除非两台服务器在同个机房的局域网内,不然访问速度肯定很慢,性价比不高,除非为了远程维护方便,不然一般不会有人这么设置,这里简单谈谈如何在WIN系统下设置MYSQL的远 ...
- centos mysql 远程连接_Linux下开启MySQL的远程连接
Linux下开启MySQL的远程连接 基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限.下面是基本的步骤: 1.登录到mysql中,为root进行远程访问的 ...
最新文章
- 2021-04-06 符号执行是啥?
- LeetCode 2 两数相加
- Linux系统程序包管理工具 RPM
- linux 单用户模式 救援模式 忘记root密码的两种解决办法
- Shell 文本操作利器收集
- 用的fileupload组件实现的大文件上传
- ubuntu ln软连接硬连接
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例...
- BZOJ2300[HAOI2011] 防线修建
- 辗转相除法求最大公因数
- 机器学习之金融信贷风控(一)互联网金融业申请评分卡的介绍
- LeetCode题解 Day1数组的遍历
- 【罗开传奇】传奇服务端调整人物属性脚本命令ChangeHumAbility
- Keil MDK介绍
- i5 12490f和i5 12600kf差距 i512490f和i512600kf对比
- Java Microbenchmark Harness (JMH)
- 【论文阅读】Text Gestalt: Stroke-Aware Scene Text Image Super-Resolution
- Ubuntu下常用的快捷键
- zookeeper源码分析之恢复事务日志
- 自动驾驶AI也能像真人司机一样有性格吗?
热门文章
- android融云自定义消息界面大小,融云自定义消息通知栏显示
- ppt课堂流程图_4个超实用的PPT制作技巧:开学提升备课质量,资深老师都在用
- linux python 操作mysql_python 简单操作MySQL
- mysql 1261 load data_mysql使用load data导入数据文件
- java响应鼠标滚轮事件_javascript滚动条响应鼠标滑轮的实现上下滚动事件
- 西部数码linux云服务器,linux云服务器选择哪个版本
- 点餐系统ip地址_spring boot实战——微信点餐系统03:微信授权(用户授权),免费内网穿透(固定ip)...
- node mysql崩溃_Node出错导致运行崩溃的解决方案
- 华为鸿蒙os正在国外小规模测试,华为鸿蒙OS正小规模测试
- 【纪中集训】2019.08.10【NOIP提高组】模拟 A 组TJ