ci框架 查询构造器类

摘要:
$this-˃db-˃select()方法的第二个参数可选,如果设置为FALSE,CodeIgniter将不保护你的表名和字段名,这在当你编写复合查询语句时很有用,不会破坏你编写的语句。$this-˃db-˃select;$query=$this-˃db-˃get;链式方法通过将多个方法连接在一起,链式方法可以大大的简化你的语法。感受一下这个例子:$query=$this-˃db-˃select-˃where-˃limit-˃get;$this-˃db-˃delete()该方法生成DELETE语句并执行。你也可以不用第二个参数,使用where()或者or_where()函数来替代它:$this-˃db-˃where;$this-˃db-˃delete;//Produces://DELETEFROMmytable//WHEREid=$id如果你想要从多个表中删除数据,你也可以将由多个表名构成的数组传给delete()方法。下面是使用对象的例子:/*classMyclass{public$title='MyTitle';public$content='MyContent';public$date='MyDate';}*/$object=newMyclass;$this-˃db-˃insert;

$this->db->get()

该方法执行 SELECT 语句并返回查询结果,可以得到一个表的所有数据:

$query = $this->db->get('mytable');  // Produces: SELECT * FROM mytable

第二和第三个参数用于设置 LIMIT 子句:

$query = $this->db->get('mytable', 10, 20);
// Executes: SELECT * FROM mytable LIMIT 20, 10
// (in MySQL. Other databases have slightly different syntax)

你应该已经注意到了,上面的方法的结果都赋值给了一个 $query 变量,通过这个变量, 我们可以得到查询的结果:

$query = $this->db->get('mytable');
foreach ($query->result() as $row)
{
    echo $row->title;
}

$this->db->select()

该方法用于编写查询语句中的 SELECT 子句:

$this->db->select('title, content, date');
$query = $this->db->get('mytable');
// Executes: SELECT title, content, date FROM mytable

注解

如果你要查询表的所有列,可以不用写这个函数,CodeIgniter 会自动查询所有列(SELECT *)。

$this->db->select()方法的第二个参数可选,如果设置为 FALSE,CodeIgniter 将不保护你的 表名和字段名,这在当你编写复合查询语句时很有用,不会破坏你编写的语句。

$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE);
$query = $this->db->get('mytable');

链式方法

通过将多个方法连接在一起,链式方法可以大大的简化你的语法。感受一下这个例子:

$query = $this->db->select('title')
        ->where('id', $id)
        ->limit(10, 20)
        ->get('mytable');

$this->db->delete()

该方法生成 DELETE 语句并执行。

$this->db->delete('mytable', array('id' => $id));  // Produces: // DELETE FROM mytable  // WHERE id = $id

第一个参数为表名,第二个参数为 WHERE 条件。你也可以不用第二个参数, 使用 where() 或者 or_where() 函数来替代它:

$this->db->where('id', $id);
$this->db->delete('mytable');
// Produces:
// DELETE FROM mytable
// WHERE id = $id

如果你想要从多个表中删除数据,你也可以将由多个表名构成的数组传给 delete() 方法。

$tables = array('table1', 'table2', 'table3');
$this->db->where('id', '5');
$this->db->delete($tables);

$this->db->delete()

该方法生成 DELETE 语句并执行。

$this->db->delete('mytable', array('id' => $id));  // Produces: // DELETE FROM mytable  // WHERE id = $id

第一个参数为表名,第二个参数为 WHERE 条件。你也可以不用第二个参数, 使用 where() 或者 or_where() 函数来替代它:

$this->db->where('id', $id);
$this->db->delete('mytable');
// Produces:
// DELETE FROM mytable
// WHERE id = $id

如果你想要从多个表中删除数据,你也可以将由多个表名构成的数组传给 delete() 方法。

$tables = array('table1', 'table2', 'table3');
$this->db->where('id', '5');
$this->db->delete($tables);

$this->db->insert()

该方法根据你提供的数据生成一条 INSERT 语句并执行,它的参数是一个**数组** 或一个**对象**,下面是使用数组的例子:

$data = array(
    'title' => 'My title',
    'name' => 'My Name',
    'date' => 'My date'
);
$this->db->insert('mytable', $data);
// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date')

第一个参数为要插入的表名,第二个参数为要插入的数据,是个关联数组。

下面是使用对象的例子:

/*
class Myclass {
public $title = 'My Title';
public $content = 'My Content';
public $date = 'My Date';
}
*/
$object = new Myclass;
$this->db->insert('mytable', $object);

免责声明:文章转载自《ci框架 查询构造器类》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇System IPC 与Posix IPC(semaphore信号灯)Openstack Mitaka 版本1下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql查询特定时间段内的数据

例如查询某张表2019年5月,06点-09点间的数据。select date from <表名> where month(列名)='5' AND extract(hour_minute from <列名>) BETWEEN '600' AND '859' (注意mysql between and 是包含两边的) MySQL日期时间E...

SQL 高级语法 (一)

1、SELECT TOP, LIMIT, ROWNUM 子句 说明: SELECT TOP 子句用于规定要返回的记录的数目。 1)SQL Server语法 SELECT TOP number|percent column_name(s) FROM table_name; 2)MySQL语法 SELECT column_name(s) FROM table_...

[转载]oracle 存储过程的基本语法及注意事项

原文地址:oracle 存储过程的基本语法及注意事项作者:简单爱  oracle 存储过程的基本语法及注意事项 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 (     参数1 IN NUMBER,     参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN...

八:SQL之DQL数据查询语言单表操作

前言:   DQL数据库查询语言是我们在开发中最常使用的SQL,这一章总结了单表操作部分的常用查询方式   主要操作有:查询所有字段、查询指定字段、查询指定记录、带IN的关键字查询,范围查询,陪查询、查询空值   带AND的多条件查询、带OR的多条件查询,关键字DISTINCT,查询结果排序,分组查询。分页查询等 准备好数据测试表  1 mysql&g...

SqlServer查看锁表与解锁

锁定数据库的一个表 SELECT * FROM table WITH (HOLDLOCK)  注意: 锁定数据库的一个表的区别 SELECT * FROM table WITH (HOLDLOCK)  其他事务可以读取表,但不能更新删除 SELECT * FROM table WITH (TABLOCKX)  其他事务不能读取表,更新和删除 SELECT...

Hibernate的批量处理

  Hibernate完全以面向对象的方式操作数据库,当程序员以面向对象的方式操作持久化对象时,将自动转换为对数据的操作。例如我们Session的delete()方法,来删除持久化对象,Hibernate将负责删除对应的数据记录;当我们执行持久化对象的setter方法时,Hibernate将自动转换为底层的update语句,修改数据库的对应记录。   问题...