You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CodeIgniter-3中执行数据库种子操作插入用户数据?

在CodeIgniter 3中给User表插入种子数据的实操指南

嘿,刚好有过CI3做种子数据的经验,给你一步步捋清楚怎么操作:

1. 先创建种子文件

CI3的种子文件默认放在application/database/seeds目录下,如果这个目录不存在,手动新建一个就行。

新建一个名为Users_seed.php的文件(注意文件名首字母要大写,类名必须和文件名完全一致),示例代码如下:

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

class Users_seed extends CI_Seeder {

    public function run()
    {
        // 准备要插入的用户数据,密码一定要加密后存储
        $user_list = [
            [
                'username' => 'admin',
                'password' => password_hash('admin@123', PASSWORD_DEFAULT), // 替换成你需要的密码
                'created_at' => date('Y-m-d H:i:s') // 如果表有创建时间字段就加上,没有可以删掉
            ],
            [
                'username' => 'test_user',
                'password' => password_hash('test@456', PASSWORD_DEFAULT),
                'created_at' => date('Y-m-d H:i:s')
            ]
            // 可以继续添加更多测试用户
        ];

        // 批量插入数据到user表,效率比单条插更高
        $this->db->insert_batch('user', $user_list);

        // 如果是单条插入,用这个写法:
        // $this->db->insert('user', $single_user_data);
    }
}

小提醒:如果你的user表有其他必填字段(比如邮箱、状态),记得在数据数组里补充对应的内容;密码加密推荐用PHP原生的password_hash,比CI自带的加密类更适合存储用户密码。

2. 运行种子数据

CI3支持两种运行方式,推荐用命令行,更便捷:

方式一:命令行操作(优先选这个)

在项目根目录打开终端,执行这条命令:

php index.php migrate seed Users_seed

这里的Users_seed就是你刚才创建的种子类名称。

方式二:Web访问触发(适合没有命令行权限的场景)

可以在某个测试控制器里加一个方法来调用种子:

public function execute_seed()
{
    $this->load->library('migration');
    $this->migration->seed('Users_seed');
    echo '种子数据插入完成!';
}

然后访问对应的路由(比如http://你的域名/控制器名/execute_seed)就能执行了。

3. 避免重复插入的小技巧

如果担心重复运行种子会生成重复数据,可以加个判断逻辑:

// 测试环境可以先清空表(生产环境千万别这么干!)
// $this->db->truncate('user');

// 或者判断用户名是否存在,不存在再插入
foreach ($user_list as $user) {
    if (!$this->db->get_where('user', ['username' => $user['username']])->row()) {
        $this->db->insert('user', $user);
    }
}

这样就能顺利给user表插入种子数据啦,如果遇到表结构不匹配、权限问题之类的,随时说~

内容的提问来源于stack exchange,提问作者Sukhpal Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:37:01