zoukankan      html  css  js  c++  java
  • php连接oracle数据库

    1.先安装一下oracle instant,把oci.dll所在的目录加入PATH环境变量里
    或者直接安装oracle express
    php_pdo_oci 依赖于oracle 的oci.dll
    2.开启php_pdo_oci

    查看phpinfo();,如果没有出现下面的oci表明安装失败

    3.配置oracle,创建一个用户表测试如:

    4.测试

    $tns = "  
    (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = XE)
        )
      )
           ";
    $db_username = "guest";
    $db_password = "guest";
    try{
        $conn = new PDO("oci:dbname=".$tns,$db_username,$db_password);
    
        $sth = $conn->prepare('SELECT * from "user" ');
        $sth->execute();
    
        $result = $sth->fetchAll(PDO::FETCH_ASSOC);
        var_dump($result);
    }catch(PDOException $e){
        echo ($e->getMessage());
    }
    

    由于我安装的是oracle express 所以SERVICE_NAME 是XE ,如果是完整版的则是ORCL.

    5.PHP_PDO_OCI和PHP_OCI8的区别

    从stackoverflow上查到,PHP_PDO_OCI是php官方开发的而且开源,PHP_OCI8则是oracle开发的。
    PDO是php的数据库操作抽象层,而PHP_PDO_xxx是对应具体数据库的驱动。

    6.如果是Linux可以用ldd 查看PHP_PDO_OCI是依赖哪个版本号的oci,可以安装对应版本号的instant client。
    并把instant client中oci对应的路径加到 LD_LIBRARY_PATH中。

  • 相关阅读:
    MT【235】两道函数题
    MT【234】正方形染色(二)
    MT【233】染色正方形
    MT【232】展开式中的系数
    MT【231】棋子方法数
    MT【230】一道代数不等式
    MT【229】最小值函数
    MT【228】整数解的个数
    Python-list中的排序
    IO多路复用
  • 原文地址:https://www.cnblogs.com/xdao/p/php_oracle.html
Copyright © 2011-2022 走看看