关于php:PHP7连接Oracle环境搭建及测试代码

31次阅读

共计 1138 个字符,预计需要花费 3 分钟才能阅读完成。

1、须要 Java 库环境:
1)instantclient-basic-linux 以及 instantclient-sdk-linux 解压到雷同目录即可

// 特地留神百度搜寻出的第一个 Oracle 中文官网地址就是个坑,无奈实现下载
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

2)编译装置 oci8,能够间接通过 pecl 装置:oci8 官网装置领导

pecl install oci8-2.2.0   // 留神 php7 须要的版本为 2.2,php8 须要的版本为 3.0
// 装置过程中须要输出 instantclient 目录,输出格局如下:instantclient,/path/to/instantclient_19_8,19.8
// 装置实现后记得增加 oci8.so 到 php.ini 文件
extension=oci8.so

3) 装置 pdo_oci 反对

// 这个须要从源码装置,依据你本地装置的 php 版本,去 php 官网下载对应的源码(
(https://github.com/php/php-src))cd ext/pdo_oci ./configure --with-pdo-oci=instantclient,/data1/oracle/instantclient_19_8,19.8 // 这个过程可能会遇到短少一些库,装置对应的库即可 extension=pdo-oci.so

4)PDO 连贯测试代码

<?php
$tns = "
(DESCRIPTION =
    (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))
          (CONNECT_DATA =(SERVICE_NAME = databasename)
     )
)";

$db_username = "username";
$db_password = "password";
$db = "oci:dbname=";
try {$conn = new PDO($db.$tns.';charset=UTF8',$db_username,$db_password);
} catch(PDOException $e){echo ($e->getMessage());
}
$sql="SELECT * FROM test";
$ret = $conn->query($sql);
// 打印谬误
print_r($conn->errorInfo());

5)连贯 Oracle 查问中文呈现乱码

// 连贯时减少指定字符集即可
new PDO($db.$tns.';charset=UTF8',$db_username,$db_password);

正文完
 0