📜  codeigniter 中的数据库交互 - PHP (1)

📅  最后修改于: 2023-12-03 14:40:08.375000             🧑  作者: Mango

CodeIgniter 中的数据库交互

CodeIgniter 是一个基于 PHP 的开源 Web 应用框架,它使得开发者能够快速构建出高效、安全和可靠性强的 Web 应用。在 CodeIgniter 的开发中使用数据库交互是非常常见的需求,本文将介绍 CodeIgniter 中的数据库交互。

数据库配置文件

在 CodeIgniter 中,数据库配置文件为 “application/config/database.php” 文件。在这个文件中,你需要配置数据库的主机地址、数据库名称、数据库用户名、密码和其他配置项(例如字符集、数据库驱动、缓存选择器等)。这是一个典型的数据库配置文件的范例:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'       => '',
    'hostname'  => 'localhost',
    'username'  => 'myusername',
    'password'  => 'mypassword',
    'database'  => 'mydatabase',
    'dbdriver'  => 'mysqli',
    'dbprefix'  => '',
    'pconnect'  => FALSE,
    'db_debug'  => (ENVIRONMENT !== 'production'),
    'cache_on'  => FALSE,
    'cachedir'  => '',
    'char_set'  => 'utf8',
    'dbcollat'  => 'utf8_general_ci',
    'swap_pre'  => '',
    'encrypt'   => FALSE,
    'compress'  => FALSE,
    'stricton'  => FALSE,
    'failover'  => array(),
    'save_queries'  => TRUE
);
数据库连接

在 CodeIgniter 中,要连接数据库只需要使用以下语句:

$this->load->database();

当你调用上述语句时,CodeIgniter 将会自动从数据库配置文件(application/config/database.php)获取数据库连接信息,然后进行数据库连接。从这一点来说,CodeIgniter 的处理方式与其他 PHP 框架非常相似。

执行查询

一旦你成功连接数据库,你就可以使用 CodeIgniter 的查询构建器执行任意的查询。这些查询可以采用链式结构构建,你也可以使用 CodeIgniter 提供的所有查询构造器。这里是一个示例:

$query = $this->db->select('title')
    ->from('BlogPosts')
    ->where('category', 'codeigniter')
    ->get();

$results = $query->result_array();

上述代码的作用是从名为 “BlogPosts” 的表中选择所有标题,其中分类为 “codeigniter”的文章,并将结果返回为关联数组。

执行存储过程

你也可以使用 CodeIgniter 执行存储过程。以下是一个示例:

$this->db->query('CALL my_stored_procedure(?,?,?)', array($arg1, $arg2, $arg3));

上述代码的作用是调用名为 “my_stored_procedure”的存储过程,并将三个参数传递给它。

执行事务

CodeIgniter 还支持事务处理,这是一种非常有用的机制,当你需要在一个或多个数据库执行操作时,任何一个操作失败时,可以回滚整个操作。以下是一个示例:

$this->db->trans_start();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->trans_complete();

if ($this->db->trans_status() === FALSE) {
    // rollback if something went wrong
    $this->db->trans_rollback();
} else {
   // commit if everything went well
   $this->db->trans_commit();
}

上述代码的作用是在数据库中执行两个查询,如果有一个查询失败,事务将会回滚从而保证操作的 一致性与正确性。

总结

CodeIgniter 对于数据库交互提供了强大的支持。通过配置文件,你可以指定连接到不同的数据库环境,如开发、测试和生产。你还可以使用查询构建器执行查询、存储过程和事务处理等操作。这些功能让 CodeIgniter 在与数据库交互时变得非常灵活,也使得它成为一个流行的 PHP 框架之一。