In CodeIgniter, using the database is very frequent. You can use the database class that comes with the framework to perform database operations conveniently
Initialize database class Load and initialize the database classes according to your database configuration: The code is as follows: this->load->database(); Once loaded you can use it anywhere. Return query results as objects The code is as follows: $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 Return query results as an array The code is as follows: $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'] Return a piece of data Object form: The code is as follows: $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 form: The code is as follows: $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'] Insert data The code is as follows: $sql = "INSERT INTO mytable (title, name) VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")"; $this->db->query($sql); echo $this->db->affected_rows(); Database configuration 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 multidimensional array in the following format: The code is as follows: $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 multidimensional arrays is to allow you to store multiple concatenated 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: The code is as follows: $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"; Well, to tell the system to use the "test" group, you can set the variable located in the configuration file: The code is as follows: $active_group = "test"; Note: The name "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. Active Record The Active Record class can be set globally (allow/disable TRUE/FALSE (boolean)) through the $active_record variable in the database configuration file. If you don't use this class, you can reduce the cost by setting the variable value to FALSE. 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: hostname - The hostname of the database, usually on the local machine, which can be expressed as "localhost". username - the username that needs to be connected to the database. password - the password to log in to the database. database - the name of the database you need to connect to. dbdriver - database type. Such as: mysql, postgres, odbc, etc. Must be lowercase letters. dbprefix - The table prefix when running Active Record queries, which allows multiple CodeIgniter programs to be installed on a database. pconnect - TRUE/FALSE (boolean) - Use persistent connections. db_debug - TRUE/FALSE (boolean) - Display database error messages. cache_on - TRUE/FALSE (boolean) - Whether the database query cache is enabled, please see the database cache class for details. cachedir - The absolute path to the server where the database query cache directory is located. char_set - The character set used when communicating with the database. dbcollat - Character collation used when communicating with the database. port - Database port number. Currently only used by the Postgres driver. To use this value, you should add a line of code to the database configuration array.