php连接神通数据库 ci框架
神通数据库连接手册
1、扩展安装
目前连接神通数据库有两种方式
| ODBC | PDO_ACI |
|---|---|
| 具体请看手册,目前使用PDO_ODBC方法PS:请看操作2 | 目前只有64位有pdo_aci.so文件,需要在神通数据库的安装目录里面找到PDO_ACI目录,并找到对应版本号将文件拷贝到当前php的扩展里面,并修改php.ini文件 PS:请看操作1 |
操作1:
#这里以php7.1测试为主
#神通数据库安装完的目录,并进入到PDO_ACI目录
cd /opt/ShenTong/PDO_ACI
#拷贝pdo_aci.so到php扩展
cd php7.1/
cp ./pdo_aci.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
----------------------------------------------------------------------------------
#修改php.ini 如果这里有了pdo_odbc 请先注释掉
extension=pdo_odbc.so
----------------------------------------------------
重启php-fpm 看看是否存在pdo_aci
操作2:
目前我们统一使用的unixodbc组件来连接非windows平台的odbc
神通数据库自己设置了dns连接比如:
定义驱动和数据源名称
[ODBC Data Sources]
ST = OSCAR ODBC DRIVER
[ST]
Driver = /opt/ShenTong/odbc/lib/liboscarodbcw.so
Servername = xx.xx.xx.xx
Port = 2003
Database = OSRDB
Username = xxx
Password = 123x456
SocketBufferSize = 4096
FetchBufferSize = 100
而在php下面使用的时候用ST找不到驱动,OSCAR ODBC DRIVER会卡死
所以先写将odbc.ini写入到环境变量
putenv('ODBCSYSINI=/usr/local/etc');
putenv('ODBCINI=/usr/local/etc/odbc.ini');
$username = "xxx";
$password = "123456";
try {
$dbh = new PDO("odbc:ST",
"$username",
"$password"
);
} catch (PDOException $exception) {
echo $exception->getMessage();
exit;
}
$stmt = $dbh->prepare("SELECT * FROM REGISTRY");
$stmt->execute();
while ($row = $stmt->fetch()) {
print_r($row);
}
2、数据库配置
CI框架数据库配置如下:
$db['default'] = array(
'dsn' => 'aci:dbname=XX.XX.XX.XX:2003/osrdb;',
'username' => 'CJP',
'password' => '123456',
'database' => 'osrdb',
'dbdriver' => 'pdo',
'dbprefix' => '',
'pconnect' => false,
'db_debug' => true,
'cache_on' => false,
'cachedir' => 'cache/mysql',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => false,
'compress' => false,
'stricton' => false,
'failover' => array(),
'save_queries' => false
);
以上为数据库配置,配置会运行会报出
not found driver(好像是这个 忘了)
这是因为ci框架里面的pdo没有以aci的驱动文件。这里需要在system3.1.5里面添加aci的驱动文件
代码如下:
vim /system3.1.5/database/drivers/pdo/subdrivers/pdo_aci_driver.php(这个文件不存在,自己添加)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class CI_DB_pdo_aci_driver extends CI_DB_pdo_driver {
/**
* Sub-driver
*
* @var string
*/
public $subdriver = 'aci';
// --------------------------------------------------------------------
/**
* ORDER BY random keyword
*
* @var array
*/
protected $_random_keyword = array('RANDOM()', 'RANDOM()');
// --------------------------------------------------------------------
/**
* Class constructor
*
* Builds the DSN if not already set.
*
* @param array $params
* @return void
*/
public function __construct($params)
{
parent::__construct($params);
}
}
3、操作方法
$result=$this->db->get('REGISTRY')->row_array();
$this->db->insert('REGISTRY',['NAME'=>'test1','VALUES'=>'test1']);
echo $this->db->last_query();
var_dump($this->db->insert_id());
数据库版本号获取
$version=$this->db->version();
//查询表
$get=$this->db->get('REGISTRY');
//获取记录数
$count_all_results=$this->db->count_all_results('REGISTRY');
//插入数据
$insert=$this->db->insert('REGISTRY',['NAME'=>'test1','VALUES'=>'test1']);
//获取插入的记录数
var_dump($this->db->insert_id());
php连接神通数据库 ci框架的更多相关文章
- CI框架浅析(全篇)
业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包 ...
- CI框架浅析
CI框架浅析(全篇) 业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很 ...
- SpringBoot+神通数据库+JPA
先上原文 https://blog.csdn.net/Helloworld_pang/article/details/114266130 一.SpringBoot + 神通数据库 基本上按照上面的参考 ...
- 【转】最简单的CI框架入门示例--数据库取数据
1.下载CI框架(自己找) 2.配置 database.php配置: 为数据库服务器设置 connection 参数: $db['default']['hostname'] = "yo ...
- 最简单的CI框架入门示例--数据库取数据
前提: 安装好MySQL,Apache,PHP. 1.下载CI框架 下载地址 http://www.codeigniter.com/ 2.配置 database.php配置: 为数据库服务器设 ...
- php的CI框架相关数据库操作
在使用之前首先应该配置数据库的参数,详见文件application/config/database.php,里面包含主机名,登陆用户名,登录密码,数据库名,编码信息等. 在配置成功后,可以简单的调用: ...
- ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...
- 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...
- CI框架 数据库批量插入 insert_batch()
使用CI框架的AR操作:insert_batch()可以减少访问数据库的次数.一次访问即可. 示例1: $data = array( array( 'title' => 'My title' , ...
随机推荐
- C++中_T()和L的区别
转载:https://blog.csdn.net/amusi1994/article/details/53898960 前言 本文旨在介绍于VC++常见的两个类型:_T()和L 概念 字符串前面加 ...
- 【小白学PyTorch】21 Keras的API详解(上)卷积、激活、初始化、正则
[新闻]:机器学习炼丹术的粉丝的人工智能交流群已经建立,目前有目标检测.医学图像.时间序列等多个目标为技术学习的分群和水群唠嗑答疑解惑的总群,欢迎大家加炼丹兄为好友,加入炼丹协会.微信:cyx6450 ...
- PropertySheet外壳扩展AppWizard
下载source files - 39 Kb 下载Wizard - 17 Kb 本文旨在简化属性表外壳扩展的实现.它紧接我的第一篇文章 处理上下文菜单壳扩展和灵感 由Michael Dunn最优秀的系 ...
- Oracle 数据库创建表空间、创建用户
创建表空间 create temporary tablespace user_name_temp tempfile '/oradata/ORA11G/user_name_temp.dbf' size ...
- 6.Android-五大布局
Android 五大布局如下所示: LinearLayout 线性布局 只能指定一个方向(垂直/水平)来布局 RelativeLayout 相对布局 通过某个控件为参照物,来定位其它控件的位置的布局方 ...
- 多测师讲解python _函数的传递_高级讲师肖sir
题目: 要求1.通过函数来实现 2.引用函数传递方法 3.引用返回值 有一个登录系统:账号admin 密码123456 验证码abc123 账号.密码.验证码 ...
- CSS常见反爬技术
目录 利用字体 反爬原理 应对措施 难点: 利用背景 反爬原理 应对措施 利用伪类 反爬原理 应对措施 利用元素定位 反爬原理 应对措施 利用字符切割 反爬原理 应对措施 利用字体 反爬原理 反爬原理 ...
- 【C++学习笔记】C++经典十二道笔试题!你能做出几道?
1. 运行下面的C++代码,得到的结果是什么? #include "stdafx.h" #include<iostream> using namespace std; ...
- 【Luogu】P3005 [USACO10DEC]槽的游戏The Trough Game
一.题目 题目描述 农夫约翰和贝西又在玩游戏.这个游戏需要很多个槽. 农夫约翰在谷仓里藏起来了N(1<=N<=20)个槽,并且他已经把其中的一些装上了食物.贝西以"在这个表里(表 ...
- go操作mysql数据库
Golang GORM使用 gorm gorm是go语言中实现数据库访问的ORM(对象关系映射)库.使用这个库,我们可以利用面向对象的方法,更加方便的对数据库中的数据进行CRUD(增删改查). 基本使 ...