神通数据库连接手册

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框架的更多相关文章

  1. CI框架浅析(全篇)

        业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包 ...

  2. CI框架浅析

    CI框架浅析(全篇)     业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很 ...

  3. SpringBoot+神通数据库+JPA

    先上原文 https://blog.csdn.net/Helloworld_pang/article/details/114266130 一.SpringBoot + 神通数据库 基本上按照上面的参考 ...

  4. 【转】最简单的CI框架入门示例--数据库取数据

    1.下载CI框架(自己找) 2.配置 database.php配置:    为数据库服务器设置 connection 参数: $db['default']['hostname'] = "yo ...

  5. 最简单的CI框架入门示例--数据库取数据

    前提: 安装好MySQL,Apache,PHP. 1.下载CI框架 下载地址  http://www.codeigniter.com/ 2.配置 database.php配置:    为数据库服务器设 ...

  6. php的CI框架相关数据库操作

    在使用之前首先应该配置数据库的参数,详见文件application/config/database.php,里面包含主机名,登陆用户名,登录密码,数据库名,编码信息等. 在配置成功后,可以简单的调用: ...

  7. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  8. 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...

  9. CI框架 数据库批量插入 insert_batch()

    使用CI框架的AR操作:insert_batch()可以减少访问数据库的次数.一次访问即可. 示例1: $data = array( array( 'title' => 'My title' , ...

随机推荐

  1. Systemd的权威用法【译】

    如何使用journalctl 来观察和操作systemd的日志 介绍 systemd的一些不错的有点就是它能涉及到进程的系统的日志.对于其他日志工具,日志通常被分布到整个系统中,由不同的daemon和 ...

  2. 第四届58topcoder编程大赛--地图路径规划

    layout: post title: 第四届58topcoder编程大赛 subtitle: 58ACM catalog: true tags: - A* 算法 - C++ - 程序设计 问题及背景 ...

  3. 实现base64的编码解码,深刻理解base64

    上代码 #include<stdio.h> #include<string.h> #include<stdlib.h> const char padding = ' ...

  4. 《Kafka笔记》1、Kafka初识

    目录 一.初识Kafka 1 apache kafka简介 2 消息中间件kafka的使用场景 2.1 订阅与发布队列 2.2 流处理 3 kafka对数据的管理形式 4 kafka基础架构 5 Ka ...

  5. docker启动服务---------------elasticsearch

      一 环境 vbox5.2.8 centos7     docker 19.03.1 elasticsearch 7.9.1 二 进入centos7启动dcoker systemctl start ...

  6. linux(centos8):jmeter5.3并发测试实例(参数在范围内随机取值)

    一,测试的url地址说明: 1,这是一个秒杀功能的url: http://127.0.0.1:8080/second/skusecond?actid=2020&skuid=cpugreen&a ...

  7. php 注册器模式 工厂模式

    <?php /** * 注册器模式 * 全局共享和交换对象 */ class Register { public static $objects; // 定义全局数组 // 保存对象到全局数组 ...

  8. spring-boot-route(二十一)quartz实现动态定时任务

    Quartz是一个定时任务的调度框架,涉及到的主要概念有以下几个: Scheduler:调度器,所有的调度都由它控制,所有的任务都由它管理. Job:任务,定义业务逻辑. JobDetail:基于Jo ...

  9. django—路由相关

    django不同版本的路由配置 django 2之前,配置urlpatterns使用的是url方法 django 2之后,配置urlpatterns使用的是path方法 path与url的区别: ur ...

  10. git学习(一) 入门级命令

    git 本地操作 调出Git的帮助文档 git --help 查看某个具体命令的帮助文档 git +命令 --help 查看git的版本 git --version 生成空的本地仓库 git init ...