【问题标题】:Codeigniter an migration not working with wampCodeigniter 迁移不适用于 wamp
【发布时间】:2013-12-23 04:24:52
【问题描述】:

我正在学习一个教程,我已经用我的代码检查了源代码以确保没有错误,但是当我进入时我无法让 codeigniter 创建更新或从我的 wamp 服务器(2.4 版)中检索任何记录任务栏 codeigniter 中的 public_html/admin/migration 返回一条消息“迁移成功!”这是 codeigniter 更新记录但未对数据库进行更改时预期的结果这是控制器中使用的代码

<?php
class Migration extends Admin_Controller
{

    public function __construct ()
    {
        parent::__construct();
    }

    public function index ()
    {
        $this->load->library('migration');
        if (! $this->migration->current()) {
            show_error($this->migration->error_string());
        }
        else {
            echo 'Migration worked!';
        }

    }
}

我已将自动加载库设置如下$autoload['libraries'] = array('database'); 有什么我想念的吗 这是我的迁移库文件,名为“001_create_users.php”

<?php

class Migration_Create_users extends CI_Migration {

    public function up()
    {
        $this->dbforge->add_field(array(
            'id' => array(
                        'type' => 'INT',
                        'constraint' => 11,
                        'unsigned' => TRUE,
                        'auto_increment' => TRUE
            ),
            'email' => array(
                        'type' => 'VARCHAR',
                        'constraint' => '100',
            ),
            'password' => array(
                        'type' => 'VARCHAR',
                        'constraint' => '128',
            ),
                        'name' => array(
                        'type' => 'VARCHAR',
                        'constraint' => '100',
            ),
        ));

        $this->dbforge->create_table('users');
    }

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

【问题讨论】:

  • 你没有提到你已经创建了你的迁移?? http://ellislab.com/codeigniter%20/user-guide/libraries/migration.html你有吗?
  • 嗨 RiggsFolly 我已经将迁移文件添加到任何帮助之上,因为我已经阅读了几个关于 CI 迁移的教程,但我无法找出故障

标签: php codeigniter wamp codeigniter-2


【解决方案1】:

不确定您是否指的是 YouTube 上 Free Courses 提供的关于 codeigniter 中 cms 构建的教程。

我解决问题的方法(几个小时后)是调试到环境设置。

将迁移控制器的索引函数中的所有内容替换为var_dump($this-&gt;db),并查看它为您的username/password/hostname/database 等返回的内容。如果它们不是您对数据库库设置的预期,那么您的环境设置不正确在 index.php 文件中。

我必须修复我的case 语句,有一个额外的/ 或\ 不记得是哪一个,所以 switch 语句强制它使用生产环境配置,这些配置没有设置。

【讨论】:

  • 刚刚阅读 codeigniter 如何启用错误报告以记录并在日志文件中我收到此错误“严重性:警告--> mysql_connect(): Access denied for user 'CHANGEME'@'localhost' (使用密码:YES)'我已经尝试过了,Stas 你是对的,它默认为生产服务器我可以不只是为生产数据库提供正确的值
  • 我尝试更改 switch 语句,但没有运气这里是我的代码 'switch (dirname(FILE)) { case '/wamp/www/cms': define('环境”、“发展”);休息;默认值:define('ENVIRONMENT', 'production');休息; }'
  • 我的case还指定了C盘:switch (dirname(FILE)){ case 'C:\wamp\www\deathstar': define('ENVIRONMENT', '发展');休息;默认值:define('ENVIRONMENT','production');休息; }
【解决方案2】:

创建表前添加主键

$this->dbforge->add_key('id');

【讨论】:

    猜你喜欢
    • 2013-06-22
    • 1970-01-01
    • 2021-06-11
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    相关资源
    最近更新 更多