标签:
最近公司有个购买项目,使用的是oracle数据库,想用PHP直接读取数据库做一些数据分析,这样就需要使用PHP连接oracle!
本地使用的window64+php5.5,需要连接的测试服务器的oracle版本为oracle10g!
1.首先需要打开本php的oci8扩展,
打开php.ini文件,去除extension=php_oci8.dll 前的‘;’。
使用phpinfo查看,发现并没有加载ico8。
2.安装本地oracle
首先下载三个文件,官网下载(可能需要FQ下载)
1).instantclient-basic-win-x86-64-10.2.0.3.0.zip
2).instantclient-odbc-win-x86-64-10.2.0.3.0.zip
3).instantclient-sqlplus-win-x86-64-10.2.0.3.0.zip
或者CSDN下载,我已打包上传
下载地址:http://download.csdn.net/detail/tao5220268/8597681
下载完成以后,
将下载的安装包全部解压,放在同一个目录下,比如在D:\oracle-client。
添加环境变量
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK(或AMERICAN_AMERICA.ZHS16GBK)
TNS_ADMIN = D:\oracle-client
LD_LIBRARY_PATH = D:\oracle-client
SQLPATH = D:\oracle-client
3.在D:\oracle-client目录下创建TNSNAME.ORA文件,自己敲容易出问题,建议直接到安装oracle数据库的机器上拷贝过来用,内容如下:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.208.120)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
以上代码中,ORCL是个连接标示符,可以自己修改,HOST是远程Oracle服务器的地址,PORT是Oracle的服务端口,没有修改过的话,默认是1521。Service_name是远程实例名称。
4.命令行下,切换到D:\oracle-client,运行odbc_install.exe,安装ODBC驱动。
5.重启apache或者nginx,打开phpinfo,查看oci8已加载!
6.php测试链接oracle
<?php
$db_server = "localhost";
$db_user = "atyu30";
$db_pass = "atyu30";
$db_sid = "atyu30";
$dbconn=OCILogon($db_user,$db_pass,"(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=127.0.0.1)(PORT = 1521))(CONNECT_DATA =(SID=$db_sid)))");
if($dbconn!=false)
{
echo "连接";
echo "DB服务器:".$db_server;
echo "用户:".$db_user;
echo "口令:".$db_pass;
echo "SID:".$db_sid;
echo "成功\n";
if(OCILogOff($dbconn)==true)
{
echo "关闭连接成功!";
}
}
else
{
echo "连接失败";
}
?>
PHP5.5配置oracle10扩展!(windows64)
标签:
原文地址:http://www.cnblogs.com/snail-tyl/p/4429117.html