📜  选择查询 ci4 (1)

📅  最后修改于: 2023-12-03 15:12:21.902000             🧑  作者: Mango

选择查询 ci4

CodeIgniter 4 是一个快速而简单的 PHP 框架,提供了强大的数据库操作功能。其中,选择查询是最基本的查询方式。

1. 连接数据库

在进行数据库操作之前,首先需要连接数据库。在 CodeIgniter 4 中,可以在配置文件 app/Config/Database.php 中设置数据库连接。

// app/Config/Database.php

$default = [
    'DSN'      => '',
    'hostname' => 'localhost',
    'username' => 'myusername',
    'password' => 'mypassword',
    'database' => 'mydatabase',
    'DBDriver' => 'MySQLi',
    'DBPrefix' => '',
    'pConnect' => false,
    'DBDebug'  => (ENVIRONMENT !== 'production'),
    'cacheOn'  => false,
    'cacheDir' => '',
    'charset'  => 'utf8',
    'DBCollat' => 'utf8_general_ci',
    'swapPre'  => '',
    'encrypt'  => false,
    'compress' => false,
    'strictOn' => false,
    'failover' => [],
    'port'     => 3306,
];

如果有多个数据库,可以设置多个连接选项。

2. 选择查询

选择查询是数据库操作中最常用的查询方式。下面是一个简单的例子,查询 users 表中的所有记录:

// app/Models/UsersModel.php

namespace App\Models;

use CodeIgniter\Model;

class UsersModel extends Model
{
    protected $table = 'users';

    public function getAllUsers()
    {
        return $this->findAll();
    }
}

上面的代码中,UsersModel 继承了 CodeIgniter 4 中的 Model 类,使用 $this->findAll() 方法查询 users 表中的所有记录。如果需要指定查询的字段,可以使用 $this->select() 方法。

// app/Models/UsersModel.php

namespace App\Models;

use CodeIgniter\Model;

class UsersModel extends Model
{
    protected $table = 'users';

    public function getAllUsers()
    {
        return $this->select('id, name')->findAll();
    }
}

上面的代码指定查询 users 表中的 idname 两个字段。

如果需要限制查询结果的数量,可以使用 $this->limit() 方法。

// app/Models/UsersModel.php

namespace App\Models;

use CodeIgniter\Model;

class UsersModel extends Model
{
    protected $table = 'users';

    public function getFirstUser()
    {
        return $this->select('id, name')->limit(1)->findAll();
    }
}

上面的代码只查询 users 表中的第一个记录。

如果需要按照某个字段进行排序,可以使用 $this->orderBy() 方法。

// app/Models/UsersModel.php

namespace App\Models;

use CodeIgniter\Model;

class UsersModel extends Model
{
    protected $table = 'users';

    public function getAllUsersOrdered()
    {
        return $this->orderBy('name')->findAll();
    }
}

上面的代码按照 name 字段对 users 表的记录进行排序。

3. 结语

选择查询是数据库操作中最常用的查询方式。CodeIgniter 4 提供了丰富的方法,支持灵活的查询。开发者可以根据实际需求选择合适的查询方式。