数据库操作类base_db_connections(强烈不建议直接调用)
对于数据库的操作, 建议通过model进行处理,.在model的基类中对于数据库的操作会通过dbschema定义文件对操作的信息进行校验并作相关的转义. 如果有特殊需求无法通过model进行处理, 应用本类时请慎重.
本类不允许直接调用, 调用方式可见base_db_model
数据库集群支持 本类支持mysql主从数据库, 一主一从, 主数据库为读写, 从数据库只读. 规则 1. 通过exec进行处理的通过主数据库服务器 2. 在一次http请求过程中, 使用用select/selectrow/selectlimit/count函数时, 使用从数据库服务器进行处理. 但一旦使用事务, 系统将通过主数据库服务器处理所有数据, 而不再通过从数据库服务器 如果想支持一主多从, 需要在config.php中做一点小处理, 把每一台的从数据库服务器的信息放到一个数组中(包括 DB_SLAVE_HOST, DB_SLAVE_USER, DB_SLAVE_PASSWORD, DB_SLAVE_NAME), 然后从数组中按照一定算法随机取出一条数据, 然后依次进行define.
支持多库,
配置
本类的配置在config/config.php内完成
DB_HOST
主数据库HOST
DB_USER
主数据库用户名
DB_PASSWD
主数据库密码
DB_NAME
主数据库库名
DB_SLAVE_HOST
从数据库HOST
DB_SLAVE_USER
从数据库用户名
DB_SLAVE_PASSWORD
从数据库密码
DB_SLAVE_NAME
从数据库库名
DB_PREFIX
表前缀, 默认为sdb_
DB_CHARSET
数据库编码, 默认为utf8
函数接口
exec
执行sql语句
参数: string $sql 需要执行的sql语句 bool $skipModifiedMark 是否跳过对于操作表的缓存更新(不明者请勿修改默认值), 默认为false resource $db_lnk mysql连接标识, 默认为null. 如果设置为null, 系统会根据config.php的配置连接指定服务器的数据库生成 返回: array|false 如果执行成功返回数组array('$rs', '$sql'). $rs表示mysql连接标识, $sql代表经过安全处理的sql语句. 如果失败返回false
代码: $item = $this->app->model('item'); $rs = $item->db->exec("select * from sdb_ecbook_item"); 返回的的$rs Array( [rs] => Resource id #62 [sql] => select * from sdb_ecbook_item )
query
exec的别名函数
select
对数据库表进行select,执行sql语句(只要是正确的sql语句都能执行);
参数: string $sql 正确的sql语句 返回: array select语句返回数据集, 二维数组. 每行代表一列数据 null insert delete update语句 不管错误还是正确都什么都不返回,如果是正确则会执行
代码: $aData = kernel::database()->select('select * from sdb_ecbook_item'); 返回值: Array( [0] => Array( [item_id] => 0 [item_name] => ami [item_subject] => abcde ) [1] => Array( [item_id] => 1 [item_name] => 0642 [item_subject] => aaaa ) )
selectrow
返回单行数据
参数: string $sql sql语句, 不需要包含limit子句 返回: array 返回表单行数据
代码: $item = $this->app->model('item'); $aData = $item->db->selectrow("select * from sdb_ecbook_item"); 返回的$aData Array( [item_id] => 0 [item_name] => ami [item_subject] => abcde )
selectlimit
与select函数差不多, 区别在于, 用selectlimit不必手拼limit
参数: string $sql select的sql语句 integer $limit 取几条数据, 默认为10. 如果$limit为-1, 则表示所有数据 integer $offset 偏移量是多少, 默认为0 返回: array 数据集, 二维数组. 每行代表一列数据
代码: $aData = kernel::database()->selectlimit('select * from sdb_ecbook_item',1,2); 返回值: Array( [0] => Array( [item_id] => 2 [item_name] => ww [item_subject] => fsdafasdf ) )
getRows
通过mysql结果集连接标识, 获取单/多行数据
参数: resource $rs mysql结果集连接标识 integer $rows 取几行数据 返回: array 多行数据集
代码: $db = kernel::database(); $rs = $db->exec('select * from sdb_ecbook_item'); $aData = $db->getRows($rs,2); 返回值: Array( [0] => Array( [item_id] => 0 [item_name] => ami [item_subject] => abcde ) [1] => Array( [item_id] => 1 [item_name] => 0642 [item_subject] => aaaa ) )
count
统计表的数据行数
参数: $sql select sql语句 返回: integer 行数
代码: $num = kernel::database()->count('select * from sdb_ecbook_item'); 返回值: 3
quote
对准备入数据库表字段的数据做安全转义处理
参数: $string 字符串 返回: $string 转义后的字符串
代码: $aData = kernel::database()->quote('abc"ecos"ab=ab'); 返回值: 'abc\"ecos\"ab=ab'
lastinsertid
获取最后插入数据库的条目的id号
返回: integer 插入数据库的id号
kernel::database()->lastinsertid();
affect_row
获取之前mysql语句操作所影响的行数
返回: integer 如果成功返回影响的行数, 如果失败返回-1
errorinfo
返回之前mysql语句操作所产生的错误文本信息
返回: string 如果成功返回相应的错误信息, 否则返回空数组''
errorcode
返回之前mysql语句操作所产生的错误号
返回: string 如果成功返回相应的错误号, 否则返回空数组0
beginTransaction
开始事务
返回: bool|resource 如果成功返回mysql连接标识, 失败返回false
commit
事务提交
返回: bool 成功为true, 失败为false
rollBack
事务回滚
相关推荐
### eCos嵌入式操作系统设备驱动开发知识点 #### 一、eCos设备驱动程序概述 **1.1 设备驱动程序基础知识** - **1.1.1 概述:** - 设备驱动程序是连接操作系统与物理硬件的桥梁,用于控制硬件设备,并将硬件设备...
### eCos嵌入式操作系统在SPCE3200上的应用——驱动开发篇 #### 一、概述 本文档旨在详细介绍eCos嵌入式操作系统在SPCE3200平台上的设备驱动开发方法。SPCE3200是一款由台湾凌阳科技推出的32位嵌入式开发系统,其...
本文将详细介绍ECOS系统中关于数据库表、数据库表定义文件及模型命名规则的相关知识点。ECOS作为一个功能强大的电子商务平台,其数据库设计与管理对于系统的稳定运行至关重要。通过遵循一套统一的命名规则,可以有效...
dbeav是ECOS框架中的数据业务引擎,它的主要功能包括数据库操作、业务逻辑处理和数据建模。dbeav的设计理念是将数据库操作与业务逻辑分离,使得开发者能够更专注于业务层的实现,而不必过于关注底层数据操作的细节。...
### ecos_driver 驱动编写 ...综上所述,eCos中的设备驱动程序编写不仅涉及到硬件知识,还需要对eCos的操作系统原理有一定的了解。通过上述知识点的学习,开发者可以更好地理解和掌握eCos设备驱动程序的开发过程。
"ecos" 可能是一个开源操作系统、软件框架、开发环境或者是某种特定的计算平台,其具体含义需要根据项目背景来确定。 【描述】中的“备用代码”暗示了这是一个备用或次要的代码存储,可能是为了防止主代码库丢失...
- **eCos数据库文件**:`.db`文件(如`ecos.db`),用于存储配置信息。 #### 三、字符设备驱动程序 - **结构**:字符设备驱动程序遵循一定的结构,通常包括初始化函数、读写函数等。 - **编写的步骤**:设计驱动...
对于更复杂的数据库操作,可以使用`sqlite3_prepare()`函数将SQL语句编译为预处理语句,再通过`sqlite3_step()`执行该预处理语句,并使用`sqlite3_column_xxx()`函数系列获取查询结果。 #### 四、MiniGUI与SQLite的...
标题中的“eCos在ks8695x上的移植源码”揭示了本文将要讨论的是如何将嵌入式实时操作系统(RTOS)eCos移植到名为ks8695x的处理器平台上。eCos(Embedded Configurable Operating System)是一款开源、可配置的实时...
最后,将SD卡驱动程序组件包添加到eCos数据库中,意味着在配置环境中使之可用,这样当构建系统时,驱动程序会被自动编译并链接到内核中。一旦完成这个步骤,用户就能通过调用接口函数来直接使用SD卡功能,无需关心...
4. **数据持久化**:ecos框架提供了灵活的数据存储方案,支持多种数据库如MySQL、Oracle等,同时兼容NoSQL数据库如MongoDB。 **二、核心组件** 1. **订单系统**:ecos框架包含强大的订单处理能力,支持多渠道订单...
**更新数据库**:更新eCos数据库,以反映最新的配置信息。 #### 四、构建过程 **构建树生成**:构建过程的第一步是生成构建树,即创建所有需要编译的文件的列表。 **配置头文件生成**:根据配置选项生成相应的...
8. **实时数据库操作系统**:结合数据库管理功能,用于实时数据处理和分析,如用于电力调度、交通监控等领域的系统。 9. **嵌入式实时操作系统**:结合了嵌入式和实时操作系统的特性,常见于工业自动化和物联网设备...
EcStore是一个基于Ecos电子商务操作框架的B2C网店系统,它借鉴了Ruby on Rails的开发模式,运用了ORM(对象关系映射)技术。Ecos框架采用模块化开发,提供了丰富的API接口以及与第三方应用插件的无缝对接能力,旨在...
Redboot体系结构中,ecos.db数据库文件是核心,其中定义了target和package两种结构体。Target基于不同的开发板存在,每个target由多个package组成。例如,一个针对ixp465开发板的target可能会包括CPU核心、网络接口...
- **eCos基础知识**:本书对eCos操作系统进行了详细介绍,包括其架构、特性以及与其他操作系统的比较。 - **移植与配置**:指导读者如何将eCos操作系统移植到EP93XX平台上,并进行必要的配置以满足特定应用需求。 ...
这可能涉及到一个数据库或配置文件,存储各种水果的单价,以便程序在运行时能够读取并应用到计算中。价格计算模块需要考虑到精度问题,确保金额计算无误,同时也要有异常处理机制,以应对未知的水果类型或输入错误。...
mDolphin 2.0的出现,为Linux、uClinux、VxWorks和eCos等操作系统用户提供了一个高效、定制化的浏览体验。 总的来说,这些技术的发展和创新,无论是QQ for Linux的更新,还是其他软件和服务的进步,都在不断推动着...
MiniGUI-Threads模式允许在单个进程中创建多窗口,但所有窗口都在同一地址空间运行,适合于传统嵌入式操作系统如eCos、pSOS和uC/OS-II。而在Linux和uClinux上,也可以选择这种模式。 版本信息: 在案例中使用的是...