Php 如何消除Codeigniter中的数据库错误?
我已经用dbforge创建了数据库设置模型,也通过controller调用它来设置数据库。但问题是,当我从本地主机运行url时,调用“未知数据库‘loginproject’”时会出现数据库错误。注意,我已经在config>database.php'database'=>'loginproject',中设置了数据库。如果我删除它,它将不会显示错误。但我想把它留在那个里,因为以后它会在项目中被需要。如何将其设置为停留在那里进行数据库设置。我的代码如下 Welcome.php-控制器:Php 如何消除Codeigniter中的数据库错误?,php,database,codeigniter,Php,Database,Codeigniter,我已经用dbforge创建了数据库设置模型,也通过controller调用它来设置数据库。但问题是,当我从本地主机运行url时,调用“未知数据库‘loginproject’”时会出现数据库错误。注意,我已经在config>database.php'database'=>'loginproject',中设置了数据库。如果我删除它,它将不会显示错误。但我想把它留在那个里,因为以后它会在项目中被需要。如何将其设置为停留在那里进行数据库设置。我的代码如下 Welcome.php-控制器: <?ph
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$this-> home();
}
public function home()
{
$data['title'] = 'This is title';
$this -> load -> model('setup_model');
$this -> setup_model -> createDatabase();
$this -> load -> view('welcome_message');
}
}
<?php
class setup_model extends CI_Model
{
public function __construct() {
}
public function createDatabase()
{
$this->load->dbutil();
$this->load->dbforge();
if (!$this->dbutil->database_exists('loginproject'))
{
$this->dbforge->create_database('loginproject');
$this->db->query('use loginproject');
$fields = array(
'user_id' => array(
'type' => 'int',
'constraint' => 11,
'unsigned' => true,
'auto_increment' => true
),
'username' => array(
'type' => 'varchar',
'constraint' => 230,
),
'email' => array(
'type' => 'varchar',
'constraint' => 250,
),
'password' => array(
'type' => 'varchar',
'constraint' => 255,
),
'created_date' => array(
'type' => 'date',
),
'phone' => array(
'type' => 'varchar',
'constraint' => 255,
),
);
$this -> dbforge -> add_field($fields);
$this -> dbforge -> add_key('user_id', true);
$this -> dbforge -> create_table('users');
echo "Setup Done Succesfully";
}
}
}
手动创建数据库并连接config/database.php
然后在createDatabase()中更改以下内容
是否在autoload
$autoload['libraries']=array('database')中添加了数据库库代码>已添加。虽然它给出了错误您所做的更改?唯一关闭if条件如果数据库已存在no,它将检查数据库是否存在,然后还会创建表,表将使用此条件创建一次
public function createDatabase(){
$this->load->dbutil();
$this->load->dbforge();
if (!$this->dbutil->database_exists('loginproject'))
{
$this->dbforge->create_database('loginproject');
}
$this->db->query('use loginproject');
$fields = array(
'user_id' => array(
'type' => 'int',
'constraint' => 11,
'unsigned' => true,
'auto_increment' => true
),
'username' => array(
'type' => 'varchar',
'constraint' => 230,
),
'email' => array(
'type' => 'varchar',
'constraint' => 250,
),
'password' => array(
'type' => 'varchar',
'constraint' => 255,
),
'created_date' => array(
'type' => 'date',
),
'phone' => array(
'type' => 'varchar',
'constraint' => 255,
),
);
$this -> dbforge -> add_field($fields);
$this -> dbforge -> add_key('user_id', true);
$this -> dbforge -> create_table('users');
echo "Setup Done Succesfully";
}