黑帽联盟

 找回密码
 会员注册
查看: 1459|回复: 0
打印 上一主题 下一主题

[php] php连接oracle数据库的方法(已成功)

[复制链接]

148

主题

9

听众

337

积分

版主

Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    擦汗
    2018-6-6 11:33
  • 签到天数: 348 天

    [LV.8]以坛为家I

    本文简单分析了php连接oracle数据库的方法。具体如下:

    PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。你的PHP安装选项应该可以支持两者的使用。

    由于OCI函数访问oracle8以上的数据库需要用到Oracle8 Call-Interface(OCI8),这个扩展模块需要oracle8的客户端函数库,因此需要连接远程数据库的话,还需要连接端安装oracle客户端软件,可以到http://www.oracle.com免费下载,这是必须的,否则会报方法未定义错。

    步骤:
    1、安装apache和php。
    2、安装Oracle 10g Instant Client(或其他版本)。
    2、在php.ini中打开extension=php_oci8扩展。
    3、将php/ext目录下的php_oci8.dll文件拷贝到system32目录下。
    4、编写测试脚本测试。
    1. <?php
    2. $conn = oci_connect('用户名', '密码', '远程数据库名(eg.//192.168.1.133/orcl)');
    3. if (!$conn) {
    4.   $e = oci_error();
    5.   print htmlentities($e['message']);
    6.   exit;
    7. }else {
    8.   echo "连接oracle成功!";
    9. }
    10. ?>
    复制代码
    可能出现的错误:

    1、call to undefined function oci_connect()......:这是因为没找到php_oci8.dll,检查apache的错误日志error.log可能会看到:php startup :unable to load dynamic liberaries php_oci8.dll......

    解决方法:将php/ext目录下的php_oci8.dll文件拷贝到system32目录下,如果还不行,将Oracle 10g Instant Client安装目录下/product/10.2.0/db_2/BIN目录中的oci.dll文件拷贝到system32下。

    2、OCIEnvNlsCreate() failed....... PATH includes the directory with Oracle Instant Client libraries

    解决方法:重启机器,如果还不行,安装Oracle 10g Instant Client。

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部