查询辅助函数
关于执行查询的信息
$this->db->insert_id()
当执行 INSERT 语句时,这个方法返回新插入行的ID。
注解
如果你使用的是 PostgreSQL 的 PDO 驱动器, 或者 Interbase 驱动器, 这个方法需要一个 $name 参数来指定合适的顺序。(什么意思?)
$this->db->affected_rows()
当执行 INSERT、UPDATE 等写类型的语句时,这个方法返回受影响的行数。
注解
在 MySQL 中执行 "DELETE FROM TABLE" 语句返回受影响的行数为 0 。 为了让这个方法返回正确的受影响行数,数据库类对此做了一点小 hack。 默认情况下,这个 hack 是启用的,你可以在数据库驱动文件中关闭它。
$this->db->last_query()
该方法返回上一次执行的查询语句(是查询语句,不是结果)。 举例:
$str = $this->db->last_query();
// Produces: SELECT * FROM sometable....
注解
将数据库配置文件中的 save_queries 设置为 FALSE 可以让这个方法无效。
关于数据库的信息
$this->db->count_all()
该方法用于获取数据表的总行数,第一个参数为表名,例如:
echo $this->db->count_all("my_table");
// Produces an integer, like 25
$this->db->platform()
该方法输出你正在使用的数据库平台(MySQL,MS SQL,Postgres 等):
echo $this->db->platform();
$this->db->version()
该方法输出你正在使用的数据库版本:
echo $this->db->version();
让你的查询更简单
$this->db->insert_string()
这个方法简化了 INSERT 语句的书写,它返回一个正确格式化的 INSERT 语句。 举例:
$data = array("name" => $name, "email" => $email, "url" => $url);
$str = $this->db->insert_string("table_name", $data);
第一个参数为表名,第二个参数是一个关联数组,表示待插入的数据。 上面的例子生成的 SQL 语句如下:
INSERT INTO table_name (name, email, url) VALUES ("Rick", "rick@example.com", "example.com")
注解
所有的值自动被转义,生成安全的查询语句。
$this->db->update_string()
这个方法简化了 UPDATE 语句的书写,它返回一个正确格式化的 UPDATE 语句。 举例:
$data = array("name" => $name, "email" => $email, "url" => $url);
$where = "author_id = 1 AND status = "active"";
$str = $this->db->update_string("table_name", $data, $where);
第一个参数是表名,第二个参数是一个关联数组,表示待更新的数据,第三个参数 是个 WHERE 子句。上面的例子生成的 SQL 语句如下:
UPDATE table_name SET name = "Rick", email = "rick@example.com", url = "example.com" WHERE author_id = 1 AND status = "active"
注解
所有的值自动被转义,生成安全的查询语句。