oci8扩展oracle客户端
thinkphp
下载并配置oci8扩展



phpstudy2016,使用的PHP版本是php-7.0.12-nts
D:\phpStudy\php\php-7.0.12-nts\ext

extension=php_pdo_oci.dll extension=php_oci8.dll ;;extension=php_oci8_11g.dll extension=php_oci8_12c.dll
php_pdo_oci.dll:这个是phpstudy自带的,使用pdo方法去连接oci8,这个必须打开php_oci8.dll:这个是拷贝进入的oci8基本扩展,必须打开php_oci8_11g.dll / php_oci8_12c.dll:这个是扩展版本,实测任意打开一个,都可以连接oracle 11g和oracle 19c,后面一个感觉速度更快




instant client客户端,这个和oracle不匹配直接导致无法连接,实测32位可以匹配PHP64或者32(instant client版本还和oracle服务端版本有关,32位不行就换一个试试)<?php
return array(
//连接oracle 11g r2
'DB_TYPE' => 'oracle', // 数据库类型
'DB_HOST' => '127.0.0.1', // 服务器地址
'DB_NAME' => 'orcl', // 数据库名
'DB_USER' => 'usr', // 用户名
'DB_PWD' => 'pwd', // 密码
'DB_PORT' => '1521', // 端口
//连接oracle 19c CBD模式
// 'DB_TYPE' => 'oracle', // 数据库类型
// 'DB_HOST' => '127.0.0.1', // 服务器地址
// 'DB_NAME' => 'orcl', // 数据库名
// 'DB_USER' => 'C##usr', // 用户名
// 'DB_PWD' => 'pwd', // 密码
// 'DB_PORT' => '1521', // 端口
);
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$sql = " select * from tablea where rownum <10 ";
$rs = M()->query($sql);
var_dump($rs);
}
}
oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries
SQLSTATE[HY000]: OCIEnvNlsCreate: Check the character set is valid and that PHP has access to Oracle libraries and NLS data (ext\pdo_oci\oci_driver.c:688)
以上就是ThinkPHP连接ORACLE数据库的详细教程的详细内容,更多关于ThinkPHP连接ORACLE的资料请关注插件窝其它相关文章!