Overview
In CodeIgniter we use, insert() function to insert data into database.
Basic syntax:
insert('table_name', 'array_of_object');
Here, we are using 3 files for insert data into MySQL:
Controller: User.php /app/Controllers/User.php
Model: UserModel.php /app/Models/UserModel.php
View: add.php /app/Views/add.php
Database Table user_info
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;
/app/Config/Routes.php
$routes->add('user/add', 'User::add');
$routes->post('user/save', 'User::save');
/app/Views/add.php
<!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>
/app/Controllers/User.php
<?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";
}
}
}
/app/Models/UserModel.php
<?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);
}
}