For any queries you can reach us at infovistarindia@gmail.com / WhatsApp us: +919158876092

Insert data in Database using CodeIgniter 4

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);
	}
	
}