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' , ...
随机推荐
- 【题解】[ZJOI2009]假期的宿舍
\(\color{red}{Link}\) \(\text{Solution:}\) 把人和床看成点,问题转化为二分图. 于是,对于每一个在校生,我们建立出他的床点:然后对于每一个在校生,他们自己可以 ...
- Java 客户端操作 FastDFS 实现文件上传下载替换删除
FastDFS 的作者余庆先生已经为我们开发好了 Java 对应的 SDK.这里需要解释一下:作者余庆并没有及时更新最新的 Java SDK 至 Maven 中央仓库,目前中央仓库最新版仍旧是 1.2 ...
- 利用 Python 插入 Oracle 数据
# coding=utf-8 ''''' Created on 2020-01-05 @author: Mr. Zheng ''' import json; import urllib2 import ...
- C#与sql进行图片存取
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Da ...
- javascript 数据类型判断总结
一 typeof 回顾:js有五种基本数据类型:值类型("number","string","boolean","undefine ...
- DBA提交脚步规范
工作中需要走脚步流程,申请修改数据库,总结一些常用的语句:)提交时注明为DDL/DML_需求号_日期(各公司标准不一样)//修改字段长度使用;alter table t_task modify tas ...
- day07 Pyhton学习
一.昨日内容回顾 小数据池,常量池 id()内存地址 is == 的区别 is 判断的是内存地址 == 判断的是值 存在的意义: 快速的创建字符串,整数,布尔值的对象 帮你节省内存 解码和编码 enc ...
- bootStrap小结2
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...
- rabbitmq--通配符模式Topics
topic模式也称为主题模式,其实他相对于routing模式最大的好处就是他多了一种匹配模式的路由,怎么理解匹配呢,其实就相当于我们之前正则的.*这种,不过他的匹配机制可能不是这种(其实除了匹配规则外 ...
- linux(centos8):lnmp环境编译安装zabbix5.0
一,zabbix的用途: zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 zabbix能监视各种网络参数,保证服务器系统的安全运营: 并提供灵活的通知机制以 ...