.


Divya


How to insert data in database - CakePHP framework


In this example we are going to show you how to insert data in database using CakePHP framework PHP.

For insert data in MySQL using CakePHP first we have to create a table in data base.

The INSERT INTO statement is used to insert new data to a MySQL table:

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

To learn more about SQL, please visit our SQL tutorial.

For creating table the SQL query is:

SQL Query

CREATE TABLE student_details
(
id int NOT NULL AUTO_INCREMENT,
first_name varchar(50),
last_name varchar(50),
email varchar(50),
city varchar(50),
PRIMARY KEY (id)
);

Here we using 3 files for insert data in MySQL:

  • routes.php
  • UsersController.php
  • add.ctp

routes.php

<?php
use Cake\Core\Plugin;
use Cake\Routing\RouteBuilder;
use Cake\Routing\Router;
Router::defaultRouteClass('DashedRoute');
Router::scope('/', function (RouteBuilder $routes) {
$routes->connect('/users/add', ['controller' => 'Users', 'action' => 'add']);
$routes->fallbacks('DashedRoute');
});
Plugin::routes();

UsersController.php

<?php
namespace App\Controller;
use App\Controller\AppController;
use Cake\ORM\TableRegistry;
use Cake\Datasource\ConnectionManager;
use Cake\Auth\DefaultPasswordHasher;
class UsersController extends AppController{
public function add(){
if($this->request->is('post')){
$first_name = $this->request->data('first_name');
$last_name = $this->request->data('last_name');
$email = $this->request->data('email');
$city = $this->request->data('city');
$users_table = TableRegistry::get('users');
$users = $users_table->newEntity();
$users->first_name = $first_name;
$users->last_name = $last_name;
$users->email = $email;
$users->city = $city;
if($users_table->save($users))
echo "User is added.";
}
}

add.ctp

<?php
echo $this->Form->create("Users",array('url'=>'/users/add'));
echo $this->Form->input('first_name');
echo $this->Form->input('last_name');
echo $this->Form->input('email');
echo $this->Form->input('city');
echo $this->Form->button('Submit');
echo $this->Form->end();
?> Route::post('create','StudInsertController@insert');


.