如何在 Codeigniter 中播种数据

2024-02-17

迁移后如何在 CodeIgniter 中播种数据? 迁移完成后,我想在表用户迁移后植入一些预定义用户。

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

class Migration_Users extends CI_Migration {

    public function up()
    {
        $this->load->database();
        $dbprefix = $this->db->dbprefix;
        $this->dbforge->add_field(array(
                'id' => array(
                        'type' => 'INT',
                        'constraint' =>11,
                        'unsigned' => TRUE,
                        'auto_increment' => TRUE
                ),
                'first_name' => array(
                        'type' => 'VARCHAR',
                        'constraint' => 50
                ),
                'last_name' => array(
                        'type' => 'VARCHAR',
                        'constraint' => 50,
                )
             ));
       $this->dbforge->add_key('id', TRUE);
        $this->dbforge->create_table('users');
      }

    public function down()
    {
            $this->dbforge->drop_table('users');
    }
 }

我知道这篇文章已经很老了,但是当搜索“迁移中的代码点火器播种”时,它是谷歌中的第一个结果。所以我想我会提供我的解决方案。

您可以很轻松地执行简单的操作$this->db->query($sql)迁移中的向上方法和向下方法。

对于我的特定情况,我正在播种一些静态哈希数据,因此将这些值放入迁移的属性中并在循环中读取它,每次从我的种子数组创建 SQL 插入查询。

这是我的种子迁移文件的一个经过编辑、简化的示例:

<?php

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

class Migration_Seed_hash_table extends CI_Migration {

    public function up()
    {
        foreach ($this->seedData as $seed ) {
            $sql = 'INSERT INTO hash_table VALUES '.$seed;
            $this->db->query($sql);
        }
    }

    public function down()
    {
        foreach ($this->seedData as $seed) {
            $hash = substr($seed, 2, 32);
            $sql = 'DELETE FROM hash_table WHERE hash = \''.$hash.'\'';
            $this->db->query($sql);
        }
    }

    private $seedData = array(
        '("2a96e53846b6232662fff87128061bbd", "Value A",)',
        '("7c78ebb4c223c96fa9c5e6s3f73cc28e", "Value B",)',
        '("ad2cb75a968ca5ef3255d924076e902f", "Value C",)',
    );
}

注意:上面的示例已删除所有错误检查,以保持较小的大小以用于发布目的。

这当然取决于您的数据模式是否到位(在之前的迁移中),以及您的所有值$seedData属性是 INSERT 查询的后/右侧,指定了所有列。

但你明白了。 =)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Codeigniter 中播种数据 的相关文章

  • 如何正确转义 CSV 中的双引号?

    我的 CSV 中有这样一行 Samsung U600 24 10000003409 1 10000003427 旁边引用24用于表示英寸 而该引号旁边的引号则关闭该字段 我正在读这行fgetcsv但解析器犯了一个错误 并将该值读取为 Sam
  • 如何确定 n 高数字金字塔中的最大路线成本

    我有一个像这样的数字金字塔 7 4 8 1 8 9 2 4 6 7 4 6 7 4 9 4 9 7 3 8 8 routes 32 每个数字都按其系列中的强大程度进行索引 0 9 gt 1 1 8 gt 5 2 8 gt 4 3 7 gt
  • 重定向后丢失会话变量

    用户填写用户名和密码 如果正确 页面会加载一些信息 例如user id到会话变量 该脚本制作了一个header Location 重定向 不知何故 下一页无法识别会话 怎么会 重定向到同一个域 并且所有页面都有session start 我
  • 提交ajax表单并停留在同一页面不起作用

    我想将用户的评论存储在我的数据库中 当用户提交时 我不想将他们重定向到新页面 我有以下代码 但它不起作用 我的 HTML 代码
  • 当错误较多时,Laravel 不会显示错误。这是 Bug?

    重复的https github com laravel framework issues 31123 https github com laravel framework issues 31123 Laravel 版本 6 8 0 6 10
  • 如何通过键查找最大和最小日期

    我有一个数组 a array 2010 05 03 gt 100 2010 05 04 gt 400 2008 05 01 gt 800 2011 01 01 gt 800 我如何找到最大值和最小值key date 例如 max gt 20
  • 如何从 Laravel 5 中的 Public/Images 文件夹中删除图像(URL 数据)

    如何从 laravel 5 中的 public images 文件夹中删除图像文件 我从这个网站找到了一些例子 但我知道他们只是在他们的文件中使用文件名record table 但我正在使用类似的东西URL e g localhost pr
  • Symfony php.ini Debian

    我在 Oracle VM VirtualBox 上使用 Debian 7 amd64 LAMP 服务器 我正在尝试安装 Symfony 但遇到了一些小问题 当我运行命令时 php my project name app check php
  • 这些加密算法有什么区别?

    两者有什么区别MCRYPT RIJNDAEL 128 MCRYPT RIJNDAEL 256 MCRYPT BLOWFISH等等 哪一种最适合网络数据传输 Rijandel 是 AES 的另一个名称 AES 是当前的 一个好的标准 算法 数
  • PHP 警告 ZipArchive::extractTo():权限被拒绝

    我创建了一个应用程序 它使用 ZipArchive 类 php 中的标准 中的方法 extractTo 并在 Windows 7 上的本地主机 apache 服务器上对其进行了测试 没有任何问题 但是当我在一些unix生产服务器上尝试过它之
  • FPDF - 内嵌粗体文本

    我正在尝试从 PHP 创建 PDF 出于法律原因 我们需要将免责声明的一部分设为粗体 并且需要概述免责声明 我当前的代码使用 if isset POST optout POST optout yes pdf gt Ln 5 pdf gt S
  • 如何将 ctype_alpha 与 UTF-8 结合使用

    如何将 ctype alpha 与 UTF 8 一起使用 我有这个代码 if empty POST false if isset POST first name empty POST first name if ctype alpha PO
  • PHP 中的正则表达式:找到第一个匹配的字符串

    我想在非常长的文本中找到第一个匹配的字符串 我知道我可以使用 preg grep 并获取返回数组的第一个元素 但是 如果我只需要第一场比赛 或者我知道提前只有一场比赛 那么这样做效率不高 有什么建议吗 预匹配 http www php ne
  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • 登录后所有页面都应该是https吗?

    这有点难以解释 但我会尽力 有一个网站 每个页面上都有登录表单 其中包含用户名 密码字段 这些页面未使用 SSL 用户填写用户名 密码并提交表单后 表单将被发送到 https 的身份验证页面 对于这种情况我有几个疑问 向 https 页面提
  • 使用 DOM 获取 div 的内容(包括子标签)

    我正在使用 DOM 来获取 div 标签的内容 但内部 html 部分未显示 功能是 dom new DOMDocument libxml use internal errors true dom gt loadHTMLFile url l
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • 无需下载整个文件即可读取 ID3 标签

    是否可以读取 MP3 文件的 ID3 标签 持续时间 艺术家 标题 而无需下载整个文件 我做了一些测试 只需下载 MP3 文件的几个字节就可以获得艺术家和标题标签 但我不确定持续时间和其他标签是否可能 Thanks 我刚刚发现 ffmpeg
  • 如何显示不同页眉的页面? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在为我的学校项目开发网站 但我遇到了一个问题 我在每个页面上显示一个标题 我的标题之一包含登录表单 另一标题包含用户名 搜索栏等 问题是
  • PHP 除法浮点值问题

    当我尝试获取余数时 它给出了无效值 我试图获得两位小数的余数 我得到 3 4694469519536E 18 我的价值观是 x 0 1 y 0 005 我尝试了以下方法 echo ed fmod 0 1 0 005 OutPut 3 469

随机推荐

  • 如何在 :before 伪类中设置 SVG 图像的大小?

    我想在 CSS 中显示图像 before元素 withimage before content url path to image svg display block height 20px width 20px 问题是 height an
  • 绘制词频和 NLTK

    我有一个包含各种单词的文件 我想计算文档中每个单词的频率并绘制它 但是 我的情节没有显示结果 这x axis必须包含单词 并且y axis频率 我在用NLTK NumPy and Matplotlib 这是我的代码 也许我做错了什么 def
  • 是否有直接指示 RESPONSE.REDIRECT 转到上一页?

    我有一个 Web 应用程序 服务台票证系统 带有一个收件箱来监视传入的请求 并制作了一些过滤按钮来帮助用户根据请求者姓名 创建日期等来安排请求 每个过滤器都会简单地调用同一页面 但会向查询字符串添加一些代码 例如 如果用户按下标有 Sort
  • 在 jinja2 循环中对 dict 的 dict 进行排序

    我如何对字典进行排序 my dict abc name B is sth True xyz name A is sth True by name在金贾 我试过了 for id data in my dict dictsort by valu
  • Python ImportError 没有名为 crypto.PublicKey.RSA 的模块

    当我尝试执行 python 程序时 我从终端得到这个 Traceback most recent call last File ring py line 1 in
  • 使用副本的 Microsoft.Web/sites/hostNameBindings 资源的 ARM 模板部署

    我对一系列 Azure 数据中心位置使用复制操作 以便为每个位置部署应用服务计划和网站 我能够创建流量管理器配置文件并使用复制对象将每个位置的端点添加到流量管理器配置文件中 当我尝试将每个网站的 CNAME 设置为我的自定义域名时 请按照说
  • 如何使用 don't cares 参数化 case 语句?

    我有一条称为输入的电线 我想检测前导的数量 我正在尝试创建一个模块 该模块使用下面的 case 语句根据前导零的数量更改输出数据 然而 输入的大小是可参数化的 如果 X 是固定值 4 我将创建一个 case 语句 case input 4
  • 客户端服务器端模板nodejs

    我正在使用 Node js 开发一个 Web 应用程序 我最初只想使用服务器端 hbs 模板 但后来我发现了客户端模板的主干 我发现它可以从服务器获取数据 然后使用 hbs 模板显示它 而不是服务器端生成整个 html 页面并发送 但后来我
  • 有没有比升级到 Visual Studio 2010 Ultimate 更便宜的负载测试方法

    我有 Visual Studio 2010 Professional 许可证 所以 Ultimate 还很遥远 我想要的只是进行几周左右的负载测试 有没有一种更便宜的方法来获得 VS2010 Ultimate 的负载测试部分 或者具有负载测
  • 存储库应该实现 UnitOfWork 吗?

    在 DDD 模式中 工作单元应该与存储库耦合吗 我见过几个不同的示例 包括实现工作单元接口的存储库 实现工作单元本身行为的存储库 以及具有表示工作单元的属性以便可以在各个工作单元之间共享的存储库 UoW 生命周期内有多个存储库实例 对于后者
  • MBProgressHud 与 gif 图像

    我可以使用 gif 图像代替默认加载指示器吗 到目前为止我正在使用这段代码但没有得到任何结果 谁能建议这段代码有什么问题吗 import UIImage GIF h void showLoadingHUD NSString title se
  • 启用 mod_http2 并在conf文件中设置协议后,HTTP/2配置未运行[重复]

    这个问题在这里已经有答案了 在看似正确的安装之后 HTTP 2 似乎并未运行 我运行的是 CentOS 7 我安装了最新版本的 Apache 版本 httpd 2 4 35 5 el7 x86 64 并一直在尝试让 HTTP 2 正常工作
  • 自定义实体具体化

    有没有办法使用 EF6 注入自定义对象实例创建器 我需要做的是在矩阵化发生之前向 EF 提供实体实例 基本上我希望能够使用非无参数构造函数定义 POCO 实体 以便能够使用 DI 聚合 最终使用 EF 进行持久化 我知道我可以使用对象物化事
  • HTML 表单只读 SELECT 标签/输入

    根据 HTML 规范 selectHTML 中的标签没有readonly属性 只有一个disabled属性 因此 如果你想阻止用户更改下拉菜单 你必须使用disabled 唯一的问题是禁用的 HTML 表单输入不会包含在 POST GET
  • 如何使用多个其他列中的所有非 NA 值创建新列?

    我想创建一个列 d 其中包含其他列中的所有非 NA 值 我尝试了 ifelse 但无法弄清楚如何使其以正确的方式嵌套 以便也包含 c 列中的值 也许应该使用 ifelse 之外的其他东西 这是一个 虚拟 数据框 a lt c NA NA N
  • Chart.js 中的水平条形图

    我正在尝试使用 Chart js 2 3 0 绘制水平条形图 var MeSeContext document getElementById MeSeStatusCanvas getContext 2d var MeSeData label
  • 成员函数 .begin() 和 std::begin()

    调用成员函数 begin of std vector and std begin 右值会导致不同的输出 如以下测试所示 vector
  • 如何在 Python 2.7 中使用函数注释

    我在Ipython中看到了这个源代码 https github com ipython ipython blob e1e2e960315f0f98703f6b8b077b10c99d04d70a IPython core completer
  • 如何在 Android 的 Spinner View 中添加左侧可绘制元素

    您好 我正在尝试添加左侧可绘制对象Spinner但我没有找到任何属性 就像你在EditText using android drawableLeft drawable password drawable 有没有正确的方法可以实现相同的目标S
  • 如何在 Codeigniter 中播种数据

    迁移后如何在 CodeIgniter 中播种数据 迁移完成后 我想在表用户迁移后植入一些预定义用户 defined BASEPATH OR exit No direct script access allowed class Migrati