チュートリアルから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;
sers_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);
}
}
?>
sers.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>
circrud
というデータベースグループをロードしています。しかし、それと呼ばれるデータベースグループはありません。持っているのはdefault
というグループだけで、グループを指定しない場合はデフォルトで読み込まれます。
$this->load->database('cicrud');
あなたはただするべきです
コードのこの部分の$this->load->database();
:
class Users_model extends CI_Model {
function __construct()
{
parent::__construct();
$this->load->database();
}
ここでは、データベース接続でデータベースグループ「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;
あなたにとって何が良いか見てみましょう。
$autoload['libraries'] = array('database','session');
これをconfig/autoload.phpに追加してから
$this->load->database('databasename');
これをモデルに追加