In CodeIgniter, using the database is very frequent. You can use the database class that comes with the framework to perform database operations conveniently.
Load and initialize the database class according to your database configuration:
$this->load->database();
Once loaded you can use it anywhere.
$query = $this->db->query('SELECT name, title, email FROM my_table'); foreach ($query->result() as $row) { echo $row->title; echo $row->name; echo $row->email; } echo 'Total Results: ' . $query->num_rows();
The result() function above returns an array of objects. For example: $row->title
$query = $this->db->query('SELECT name, title, email FROM my_table'); foreach ($query->result_array() as $row) { echo $row['title']; echo $row['name']; echo $row['email']; }
The result_array() function above returns an array with subscripts. For example: $row['title']
Object form:
$query = $this->db->query('SELECT name FROM my_table LIMIT 1'); $row = $query->row(); echo $row->name;
The row() function above returns an object. For example: $row->name
Array format:
$query = $this->db->query('SELECT name FROM my_table LIMIT 1'); $row = $query->row_array(); echo $row['name'];
The row_array() function above returns an array. For example: $row['name']
$sql = "INSERT INTO mytable (title, name) VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")"; $this->db->query($sql); echo $this->db->affected_rows();
Quick insertion method:
$data = array( 'title' => $title, 'name' => $name, 'date' => $date ); $this->db->insert('mytable', $data); // Produces: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')
CodeIgniter has a configuration file that allows you to store database connection values (username: user name, password: password, database name: database name, etc...). The configuration file is located in the following path: application/config/database.php
Accessory files are stored in a multi-dimensional array in the following format:
$db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = ""; $db['default']['database'] = "database_name"; $db['default']['dbdriver'] = "mysql"; $db['default']['dbprefix'] = ""; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = FALSE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ""; $db['default']['char_set'] = "utf8"; $db['default']['dbcollat'] = "utf8_general_ci";
The reason for using multi-dimensional arrays is to allow you to store multiple connected value settings at will. Example: If you run multiple environments (development, production, test, etc...), you can create independent connection groups for each environment and switch directly between groups. For example, to set up a "test" environment, you can do this:
$db['test']['hostname'] = "localhost"; $db['test']['username'] = "root"; $db['test']['password'] = ""; $db['test']['database'] = "database_name"; $db['test']['dbdriver'] = "mysql"; $db['test']['dbprefix'] = ""; $db['test']['pconnect'] = TRUE; $db['test']['db_debug'] = FALSE; $db['test']['cache_on'] = FALSE; $db['test']['cachedir'] = ""; $db['test']['char_set'] = "utf8"; $db['test']['dbcollat'] = "utf8_general_ci";
Then, to tell the system to use the "test" group, you can set the variable located in the configuration file:
$active_group = "test";
Note: The name of "test" is arbitrary, which allows you to set it freely. Our main connection uses the name "default" by default. Of course, you can give it a more meaningful name based on your project. .
The Active Record class can be set globally through the $active_record variable in the database configuration file (allow/disable TRUE/FALSE (boolean)). If you don’t use this class, you can set the variable value to FALSE to reduce the consumption of computer resources during database class initialization. $active_record = TRUE;
Note: Some CodeIgniter classes, such as Sessions, require Active Records support when executing some functions.
Parameter analysis:
Record it for easy reference.