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' => 'infovistar', 'email' => 'infovistarindia@gmail.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 App/Models;
use CodeIgniter/Model;
use CodeIgniter/Database/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 App/Controllers;
use App/Models/UserModel;
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";
}
}
}
