CI框架多个表前缀,如何使用框架语句querybuilder
最近用CI框架遇到一个问题。2个前提条件:
1、数据库设计不规范,有的有表前缀(如:ck_table1),有的没有(如:table2)或者表前缀不一样;
2、数据库操作又想使用数据库操作语句querybuilder;
当然,有的人会说,表都加上前缀,统一一下不就行了,我想说,如果你其他地方的代码怎么办,比如已经开发好的一个项目?再去改?累死你。。。 还有人说数据库操作使用原生的不就行了?不好意思,本人有一个强迫症,就想知道到底可不可以处理。只为解决问题提供方法。如果觉得受不了的话,请自行绕过。。。。
解决办法:
1、数据库默认表前缀为空,querybuilder时 表写全名;
2、数据库默认表前缀不为空时,在querybuilder 之前重设 表前缀
$this->db->set_dbprefix(); $query = $this->db->limit(1)
->get('table2');// 直接写表全名 $res = $query ->result_array();
$last_query = $this->db->last_query();
var_dump($res);
var_dump($last_query); $this->db->set_dbprefix("ck_");
这里需要注意一下,执行完之后,一定要在重新把表前缀给改回来,否则会影响后续的查询。。。。
CI框架多个表前缀,如何使用框架语句querybuilder的更多相关文章
- TP 框架 如果去掉表前缀
#jd_admin_abc 去掉前缀 C('DB_PREFIX')=获取前缀 结果为admin_abc $table_Name=str_replace(C('DB_PREFIX'), '', $tab ...
- ABP框架源码学习之修改默认数据库表前缀或表名称
ABP框架源码学习之修改默认数据库表前缀或表名称 1,源码 namespace Abp.Zero.EntityFramework { /// <summary> /// Extension ...
- ABP框架入门踩坑-配置数据库表前缀
配置数据库表前缀 ABP踩坑记录-目录 本篇其实和ABP关系并不大,主要是EF Core的一些应用-.-. 起因 支持数据库表前缀应该是很多应用中比较常见的功能,而在ABP中并没直接提供这一功能,所以 ...
- MYSQL批量修改表前缀与表名sql语句
修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', ta ...
- dedecms数据库表前缀不一样怎么还原数据
我们在用dedecms建站时,安装一般都“下一步”直接往下点,这样默认的表前缀是dede_,如果我们要还原从其他地方拷贝过来的数据,一定要注意表头是否一致.如果表头不一样怎么办呢?有两种方法,第一种, ...
- dede数据库文件导入失败的可能原因是数据表前缀不同,这里的失败指的是mysql添加了数据,但后台不显示
利用dede提供的数据备份还原功能,还原数据,出现失败的可能原因是数据表前缀不同,改过来就可以了
- YII2框架动态创建表模型
YII2框架动态创建表模型 在YII2中,每个表对应一个model类 在开发过程中,我们在填写一个大型表单的时候,表单里有N个select下拉列表,每个下拉select来自于不同的表: 如果要在程序里 ...
- SSH框架的多表查询和增删查改 (方法一)上
原创作品,允许转载,转载时请务必标明作者信息和声明本文章==> http://www.cnblogs.com/zhu520/p/7772823.html 因为最近在做Android 练习的 ...
- SSH框架的多表查询和增删查改 (方法一)中
原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>http://www.cnblogs.com/zhu520/p/7774144.html 这边文章是接的刚刚前一遍的基础上敲的 ...
随机推荐
- ubuntn 安装 MySQL
1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client 3. sudo apt-get install li ...
- Caused by: java.io.NotSerializableException: com.omhy.common.model.entity.XXX解决方法
启动tomact时引起的Caused by: java.io.NotSerializableException异常 种种情况就是没有序列化.序列化可以将内存中的类写入文件或数据库中 Serializa ...
- cmd 一键获取 所有连接过的wifi 密码
for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | finds ...
- c# select标签绑定枚举,并以Description做Text显示
今天在做项目时遇到一个问题: 开发中有些字段是枚举类型如 Dept 企业表中可能有个字段 Property 性质 0:事业单位,1:私企,2:外企,但有时我们不会单独为性质这个字段定义一张表, 而是在 ...
- 关于web-dev-server 记录
package.json "scripts": { "init": "webpack --progress --config webpack.dev. ...
- PropertiesUtil.java
package com.vcredit.ddcash.batch.util; import java.io.BufferedReader;import java.io.File;import java ...
- 西部数据出现“WD SES Device USB Device”怎么办,而且说明书全是英文。
您好.wd ses device driver这个驱动程序可以在baidu中输入关键词找到,什么驱动之家.驱动人生之类的专业驱动网站也都是有的. western digital的移动硬盘驱动程序安装步 ...
- IOS第二天多线程-03对列组合并图片
********* // 2D绘图 Quartz2D // 合并图片 -- 水印 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) ...
- IOS第15天(2,事件处理,侧滑菜单,抽屉效果)
******HMDrawViewController.m #import "HMDrawViewController.h" @interface HMDrawViewControl ...
- Python的时间模块小结(转自:不懂真人)
import datetimeprint time.time() #时间戳 print time.localtime(time.time()) #时间元组 print time.strftime('% ...