我正在关注一个教程,我已经用我的代码检查了源代码,以确保没有错误,但是当我输入时,我无法获得codeigniter来创建更新或从我的wamp服务器(版本2.4)检索任何记录任务栏中的public_html / admin / migration codeigniter返回一条消息“迁移工作!”这是在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');
}
}
答案 0 :(得分:0)
不确定您是否通过youtube上的免费课程引用了有关codeigniter中cms buildout的教程。
我解决问题的方法(几个小时后)调试到环境设置。
使用var_dump($this->db)
替换迁移控制器的索引函数中的所有内容,并查看它为username/password/hostname/database
等返回的内容。如果它们不是您对数据库库设置的预期,那么您的环境未在 index.php 文件中正确设置。
我必须修复我的case
语句,有一个额外的/
或\
无法记住哪一个,所以switch语句强制它使用生产环境配置,未设定。
答案 1 :(得分:0)
在创建表格之前添加主键
$this->dbforge->add_key('id');