CodeIgniter数据库基本用法示例

这里主要演示下CodeIgniter数据库的基本用法示例,以便入门使用CodeIgniter做数据库操作。

配置数据库连接等信息

CodeIgniter提供了文件 application/config/database.php用来配置数据库的连接信息,如下:

$db['default'] = array(
        'dsn'   => '',
        'hostname' => 'localhost',
        'username' => 'root',
        'password' => '',
        'database' => 'database_name',
        'dbdriver' => 'mysqli',
        'dbprefix' => '',
        'pconnect' => TRUE,
        'db_debug' => TRUE,
        'cache_on' => FALSE,
        'cachedir' => '',
        'char_set' => 'utf8',
        'dbcollat' => 'utf8_general_ci',
        'swap_pre' => '',
        'encrypt' => FALSE,
        'compress' => FALSE,
        'stricton' => FALSE,
        'failover' => array()
);

其中dsn为连接数据库的uri:

// PDO
$db['default']['dsn'] = 'pgsql:host=localhost;port=5432;dbname=database_name';

// Oracle
$db['default']['dsn'] = '//localhost/XE';

初始化Database类

$this->load->database();

它会加载上面的配置文件,然后来初始化database类。

多行记录的标准查询(Object版)

$query = $this->db->query('SELECT name, title, email FROM my_table');

foreach ($query->result() as $row)
{
        echo $row->title;
        echo $row->name;
        echo $row->email;
}

echo 'Total Results: ' . $query->num_rows();

$query->result()会返回一个对象数组。

多行记录的标准查询(数组版)

$query = $this->db->query('SELECT name, title, email FROM my_table');

foreach ($query->result_array() as $row)
{
        echo $row['title'];
        echo $row['name'];
        echo $row['email'];
}

$query->result_array()返回的每条记录为一个数组,取值如$row['title']。

单条记录的标准查询

$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row();
echo $row->name;

$query->row()返回一个对象,取对象的值如:$row->name。

单条记录的标准查询(数组版)

$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row_array();
echo $row['name'];

$query->row_array(),返回的记录为一个数组,使用索引取值如:$row['name']。

标准插入

$sql = "INSERT INTO mytable (title, name) VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";
$this->db->query($sql);
echo $this->db->affected_rows();

使用Query Builder的模式查询

$query = $this->db->get('table_name');

foreach ($query->result() as $row)
{
        echo $row->title;
}

Query Builder的get()会查询表的所有数据。

使用Query Build插入数据

$data = array(
        'title' => $title,
        'name' => $name,
        'date' => $date
);

$this->db->insert('mytable', $data);  // 实际是语句: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')

版权声明:著作权归作者所有。

相关推荐

Swift 4 Codable协议 - 基本用法

Swift 4新增了Codable协议,它是一个组合协议,包含Encodable和Decodable两个协议。代码定义如下:/// A type that can convert itself into and out of an external repre

Angular 5:HttpClient的基本用法

Angular 4.3引入了新的用于http请求的接口HttpClient。它旨在替换之前版本的接口Http。有以下新特性:对响应的body做类型检查默认返回的是JSON对象,不再需要使用json()显式解析返回的数据支持拦截器支持进度事件请求后验证和基于刷新的测试框架安装HttpClientModuleHttpClient属于@angular/common/http包的模块HttpCl

Spring Controller统计数据库的百万行数据(Aggregate Millions of Database Rows in a Spring Controller)

了解如何使用Spring和Speedment在Java中执行超快速聚合,即使是具有数百万行的大型数据集。只要API与数据库的结构相匹配,Spring Framework就可以使用JPA和Spring Web快速地建立关系型数据库的RESTful API。 然而,在许多API中,REST端不对应于特定的表,而是对应于一些聚合的字段。在这些情况下,你仍然需要编写自己的RE

SQL Server可能会损坏数据库的前3名错误

SQL Server是一个令人难以置信的平台,但就像任何其他数据库一样,它容易出现纠正。 了解三个最常见的SQL Server错误以及如何解决它们。你是否在思考SQL数据的损坏?你是否知道不同的错误预示着SQL Server数据库的不健康?这篇博文我们将介绍与SQL相关的三大错误以及最佳解决方案。但首先,我们探讨一些有关数据库损坏的基本信息。什么是数据库损坏

查看MySQL数据库空间使用情况

information_schema是MySQL的系统数据库,information_schema里的tables表存放了整个数据库各个表的使用情况。可以使用sql来统计出数据库的空间使用情况,相关字段:table_schema:数据库名table_name:表名table_rows:记录数data_length:数据大小index_length:索引大小统计表使用空间mysql> select