About Lesson
The insert() method accepts the associative array of data and is passed into this method as the only parameter to create a new row of data in the database.
The array’s keys must match the name of the columns in a $table
, while the array’s values are the values to save for that key:
Syntax:
$this->db->table('table_name')->insert('array_of_objects');
Example:
$data = [ 'username' => 'darth', 'email' => 'd.vader@theempire.com', ];
$this->db->table($table)->insert($data);
Create a new row of data in the database
1. Create a user_info table in the MySQL database.
CREATE TABLE `user_info` ( `id` INT NOT NULL AUTO_INCREMENT , `first_name` VARCHAR(255) NOT NULL , `last_name` VARCHAR(255) NOT NULL , `email` VARCHAR(255) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;
2. Copy and Paste the following lines in app/Config/Routes.php
$routes->add('user/add', 'User::add'); $routes->post('user/save', 'User::save');
3. Create an add.php file in app/Views/ directory
<!DOCTYPE html> <html> <head> <title>Add user</title> </head> <body> <form method="post" action="<?php echo base_url('user/save'); ?>"> <table width="600" border="1" cellspacing="5" cellpadding="5"> <tr> <td width="230">First Name</td> <td width="329"> <input type="text" name="txtFirstName" /> </td> </tr> <tr> <td>Last Name</td> <td> <input type="text" name="txtLastName" /> </td> </tr> <tr> <td>Email ID</td> <td> <input type="email" name="txtEmail" /> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="btnAddUser" value="Add user" /> </td> </tr> </table> </form> </body> </html>
4. Create a model file UserModel.php in the app/Models/ directory.
<?php namespace AppModels; use CodeIgniterModel; use CodeIgniterDatabase\ConnectionInterface; class UserModel extends Model { protected $db; public function __construct(ConnectionInterface &$db) { $this->db =& $db; } function add($data) { return $this->db ->table('user_info') ->insert($data); } }
5. Create a controller file User.php in the app/Controllers/ directory.
<?php namespace AppControllers; use AppModelsUserModel; class User extends BaseController { public function __construct() { $db = db_connect(); $this->userModel = new UserModel($db); } public function add() { echo view('add'); } public function save() { $first_name = $this->request->getPost('txtLastName'); $last_name = $this->request->getPost('txtLastName'); $email = $this->request->getPost('txtEmail'); $data = [ 'first_name' => $first_name, 'last_name' => $last_name, 'email' => $email, ]; $result = $this->userModel->add($data); if($result) { echo "New user is registered successfully."; } else { echo "Something went wrong"; } } }