CI中写原生SQL(封装查询)

封装查询

封装,通过让系统为你组装各个查询语句,能够简化你的查询语法。参加下面的范例:

$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";

$this->db->query($sql, array(3, ‘live‘, ‘Rick‘));

查询语句中的问号会自动被查询函数中位于第二个参数位置的数组中的值所替代。

使用封装查询的第二个好处是所有的值都会被自动转义,形成了较为安全的查询语句。你无需手动地去转义这些数据;控制器将会自动为你进行。

注:如果只有一个参数,那么不用数组,直接写变量即可

时间: 2024-11-08 22:25:59

CI中写原生SQL(封装查询)的相关文章

django中使用原生sql

在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql ( 这种方式完全不依赖model,前两种还是要依赖于model ) 实例: 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50']) Book.objects.filter(publisher__name='广东

在Django中使用原生Sql

在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql(这种方式完全不依赖model,前两种还是要依赖于model) 实例: 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50']) Book.objects.filter(publisher__name='广东人员出

Hibernate原生sql的查询,返回结果设置到DTO

原生sql的查询,返回结果设置到DTO: Query query = sessionFactoryRtData.getCurrentSession().createSQLQuery(hql.toString()).setResultTransformer(Transformers.aliasToBean(RTDataAttrDto.class));

在Hibernate中使用原生SQL语句

使用原生SQL查询必须注意:程序必须选出所有的数据列才可被转换成持久化实体.假设实体在映射时有一个<many-to-one../>的关联指向另外一个实体,则SQL查询中必须返回该<many-to-one../>映射的外键列,否则将导致抛出"column not found"异常.最简单的做法是,在SQL字符串中使用星(*)来表示返回所有列.    在原生SQL语句中一样支持使用参数,这些参数即可使用问号参数(?),也可使用名字参数. 示例1:名字参数public

EF中执行原生sql与使用Local获取本地数据

使用DbSet的Local属性可以访问当前context中被追踪且没有被标记为删除的实体(内存中的数据) 1 using (var context = new BloggingContext()) 2 { 3 // Load all blogs from the database into the context 4 context.Blogs.Load(); 5 6 // Add a new blog to the context 7 context.Blogs.Add(new Blog {

EF中自编写SQL脚本查询结果(适用于复杂SQL逻辑提高查询效率)

前不久项目开发过程中,使用的是Entity Framework做数据处理.因为本人也不是对EF太有研究,只是会用而已,但是在一次需要查询的结果需要关联3.4个表来查询出来结果,并且对查询效率也有要求.但是个人觉得遇到这样的情况还是使用原始SQL语句来查询更为可控(或许EF中有更好的方法可以解决此类问题,但恕本人愚笨只想到了这种方法).就又自己扩展出一个方法,用来专门查询自定义编写的SQL语句.代码如下: public List<T> ExecuteStoreQuery(string comma

hibernate原生sql封装,报错信息:could not find setter for rownum_

今天用hibernate的时候,用了一个原生态sql做了一个分页查询,结果就报错了... 找到解决方法了:http://shmily2038.iteye.com/blog/1704963 原文地址:https://www.cnblogs.com/huzi007/p/8318132.html

django -----原生SQL语句查询与前端数据传递?

view.py中 import MySQL def request_data(request): if request.method == "GET": conn = MySQLdb.Connect( host ='my_ip', port = 3306, user = 'my_user', passwd = 'my_passwd', db = 'my_db', charset = 'utf8' ) cursor = conn.cursor() cursor.execute("

django中使用原生SQL语句

views中代码: # 有多个数据库时 from django.db import connections # 傳入游标,得到字典結果集 def dictfetchall(cursor): "将游标返回的结果保存到一个字典对象中" desc = cursor.description return [ dict(zip([col[0] for col in desc], row)) for row in cursor.fetchall() ] def seldata(request):