10

我正在根据教程制作 CRUD。我收到了这个错误。

您指定了无效的数据库连接组。

会有什么问题?

database.php - 数据库配置

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'cicrud';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

users_model.php -model

<?php

class Users_model extends CI_Model {

function __construct()

{

parent::__construct();

$this->load->database('cicrud');

}

public function get_all_users()

{

$query = $this->db->get('users');

return $query->result();

}
public function insert_users_to_db($data)

{

return $this->db->insert('users', $data);

}

}

?>

users.php - 控制器

<?php

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

class Users extends CI_Controller {

function __construct()

{

parent::__construct();

#$this->load->helper('url');

$this->load->model('users_model');

}

public function index()

{

$data['user_list'] = $this->users_model->get_all_users();

$this->load->view('show_users', $data);

}
public function add_form()

{

$this->load->view('insert');

}
public function insert_new_user()

{

$udata['name'] = $this->input->post('name');

$udata['email'] = $this->input->post('email');

$udata['address'] = $this->input->post('address');

$udata['mobile'] = $this->input->post('mobile');

$res = $this->users_model->insert_users_to_db($udata);

if($res){

header('location:'.base_url()."index.php/users/".$this->index());

}

}
}

show_users.php - html 视图

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>CI CRUD</title>

<script type="text/javascript">

function show_confirm(act,gotoid)

{

if(act=="edit")

var r=confirm("Do you really want to edit?");

else

var r=confirm("Do you really want to delete?");

if (r==true)

{

window.location="<?php echo base_url();?>index.php/users/"+act+"/"+gotoid;

}

}

</script>

</head>

<body>

<h2> Simple CI CRUD Application </h2>

<table width="600" border="1" cellpadding="5">

<tr>

<th scope="col">Id</th>

<th scope="col">User Name</th>

<th scope="col">Email</th>

<th scope="col">Mobile</th>

<th scope="col">Address</th>

<th scope="col" colspan="2">Action</th>

</tr>

<?php foreach ($user_list as $u_key){ ?>

<tr>

<td><?php echo $u_key->id; ?></td>

<td><?php echo $u_key->name; ?></td>

<td><?php echo $u_key->email; ?></td>

<td><?php echo $u_key->address; ?></td>

<td><?php echo $u_key->mobile; ?></td>

<td width="40" align="left" ><a href="#" onClick="show_confirm('edit',<?php echo $u_key->id;?>)">Edit</a></td>

<td width="40" align="left" ><a href="#" onClick="show_confirm('delete',<?php echo $u_key->id;?>)">Delete </a></td>

</tr>

<?php }?>

<tr>

<td colspan="7" align="right"> <a href="<?php echo base_url();?>index.php/user/add_form">Insert New User</a></td>

</tr>

</table>

</body>

</html>
4

3 回答 3

18

您正在加载一个名为circrud. 但是没有这样的数据库组。您唯一拥有的是一个名为的组default,如果您不指定组,默认情况下将加载该组。

$this->load->database('cicrud');

你应该这样做

$this->load->database();在这部分代码中:

class Users_model extends CI_Model {

function __construct()

{

parent::__construct();

$this->load->database();

}
于 2013-10-11T02:51:25.927 回答
4

您已经在此处的数据库连接中使用了数据库组“cicrud”:

$this->load->database('cicrud');

因此,您可以将其更改为:

$this->load->database();

或者您可以将配置更改为:

$db['cicrud']['hostname'] = 'localhost';
$db['cicrud']['username'] = 'root';
$db['cicrud']['password'] = '';
$db['cicrud']['database'] = 'cicrud';
$db['cicrud']['dbdriver'] = 'mysql';
$db['cicrud']['dbprefix'] = '';
$db['cicrud']['pconnect'] = TRUE;
$db['cicrud']['db_debug'] = TRUE;
$db['cicrud']['cache_on'] = FALSE;
$db['cicrud']['cachedir'] = '';
$db['cicrud']['char_set'] = 'utf8';
$db['cicrud']['dbcollat'] = 'utf8_general_ci';
$db['cicrud']['swap_pre'] = '';
$db['cicrud']['autoinit'] = TRUE;
$db['cicrud']['stricton'] = FALSE;

看看什么更适合你。

于 2013-10-11T02:58:26.800 回答
0
$autoload['libraries'] = array('database','session');

然后将其添加到 config/autoload.php

$this->load->database('databasename');

在模型中添加这个

于 2018-08-14T18:49:16.610 回答