oracle数据库与php链接,php与thinkphp如何设置连接oracle数据库?

在我们用来开发网站的电脑上已经安装有PHP环境,我们想使用php来连接一个oracle数据库。但是用thinkphp连接oracle,报错:系统不支持oracle。

如果你看不到这个错误,可以在你的入口文件加一行:

define('APP_DEBUG', true);

以开启thinkphp的调试功能。

这时,我们可以写一个简单的php程序oracle.php,不使用thinkphp框架,测试一下能否连接oracle:

$conn=oci_connect($user,$pass,$db,"zhs16gbk");

if($conn)

{

echo "Oracle connect successfully!
";

$q1="-------------";

$stat=oci_parse($conn,$q1);

oci_execute($stat);

}

?>

运行此php程序,发现报错:

Fatal error: Call to undefined function oci_connect() in oracle.php on line 2

于是我们知道了:本机php开发环境不支持连接oracle。

打开php.ini,开启以下两行:

extension=php_oci8.dll

extension=php_openssl.dll

重新启动apache,再运行oracle.php,发现还是报同样的错误。

下面我们使用Instant Client来解决问题:

下载Instant Client,下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 直接下载链接:

http://download.oracle.com/otn/nt/instantclient/112030/instantclient-basic-nt-11.2.0.3.0.zip

下载后,解压到D盘, D:\instantclient_11_2

将D:\instantclient_11_2 中的所有dll文件拷贝到c:\windows\system32目录下。

将D:\instantclient_11_2 添加到环境变量的path中:

在“我的电脑”上点右键,选择“属性”,点“高级”,点“环境变量”,编辑“系统变量”中的“Path”,将"D:\instantclient_11_2"放在变量值中的最前面。然后点“确定”。

然后重新启动Apache。

使用以下php代码查看php相关信息:

phpinfo();

?>

在显示的页面上搜索"oci8",你会发现有一行:

OCI8 Supportenabled

这就表明PHP已经可以连接oracle了。

然后你就可以用上面的oracle.php连接oracle试试了。如果连接成功,你就可以用thinkphp来连接oracle了。

thinkphp中连接oracle的相关配置(config.php):

return array(

'URL_MODEL'=>1, //如果你的环境不支持PATHINFO 请设置为3

'DB_TYPE'=>'Oracle', //数据库类型

//'DB_HOST'=>'localhost',

//'DB_NAME'=>'web', //数据库名

'DB_NAME'=>'localhost:1521/service_name',

'DB_USER'=>'web', //用户名

'DB_PWD'=>'web', //密码

//'DB_PORT'=>'1521', //端口

'DB_PREFIX'=>'', //数据库表前缀

);

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ThinkPHP 5 中,可以通过在 `database.php` 配置文件中的 `connections` 数组中定义多个数据库连接来实现多库连接。例如: ```php return [ // 默认数据库连接 'default' => 'mysql', // 数据库连接列表 'connections' => [ 'mysql' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'database1', // 用户名 'username' => 'root', // 密码 'password' => '', // 端口 'hostport' => '', // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', ], 'oracle' => [ // 数据库类型 'type' => 'oracle', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'database2', // 用户名 'username' => 'root', // 密码 'password' => '', // 端口 'hostport' => '', // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', ], ], ]; ``` 然后在使用数据库时,可以通过指定数据库连接的方式来连接不同的数据库。例如: ```php // 使用 mysql 数据库连接查询 $users = Db::connect('mysql')->name('user')->select(); // 使用 oracle 数据库连接查询 $users = Db::connect('oracle')->name('user')->select(); ``` 需要注意的是,在使用多库连接时,如果需要使用事务操作,则需要在使用 `Db::startTrans()` 开始事务前,手动切换到对应的连接。例如: ```php // 开始 mysql 数据库连接的事务 Db::connect('mysql')->startTrans(); // 执行 mysql 数据库连接的操作 Db::connect('mysql')->name('user')->where('id', 1)->update(['name' => 'new name']); // 切换到 oracle 数据库连接 Db::connect('oracle')->startTrans(); // 执行 oracle 数据库连接的操作 Db::connect('oracle')->name('user')->where('id', 1)->update(['name' => 'new name']); // 提交事务 Db::commit(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值