In this example we are going to show you how to insert data in database using laravel framework PHP.
For insert data in MySQL using laravel 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:
CREATE TABLE student_details
(
id int NOT NULL AUTO_INCREMENT,
first_name varchar(50),
last_name varchar(50),
city_name varchar(50),
email varchar(50),
PRIMARY KEY (id)
);
Create 3 files for insert data in Laravel :
<!DOCTYPE html>
<html>
<head>
<title>Student Management | Add</title>
</head>
<body>
@if (session('status'))
<div class="alert alert-success" role="alert">
<button type="button" class="close" data-dismiss="alert">×</button>
{{ session('status') }}
</div>
@elseif(session('failed'))
<div class="alert alert-danger" role="alert">
<button type="button" class="close" data-dismiss="alert">×</button>
{{ session('failed') }}
</div>
@endif
<form action = "/create" method = "post">
<input type = "hidden" name = "_token" value = "<?php echo csrf_token(); ?>">
<table>
<tr>
<td>First Name</td>
<td><input type='text' name='first_name' /></td>
<tr>
<td>Last Name</td>
<td><input type="text" name='last_name'/></td>
</tr>
<tr>
<td>City Name</td>
<td>
<select name="city_name">
<option value="bbsr">Bhubaneswar</option>
<option value="cuttack">Cuttack</option>
</select></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name='email'/></td>
</tr>
<tr>
<td colspan = '2'>
<input type = 'submit' value = "Add student"/>
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
namespace App\Http\Controllers;
use App\StudInsert;
use Illuminate\Http\Request;
use \Illuminate\Http\Response;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
class StudInsertController extends Controller
{
public function insert(){
$urlData = getURLList();
return view('stud_create');
}
public function create(Request $request){
$rules = [
'first_name' => 'required|string|min:3|max:255',
'city_name' => 'required|string|min:3|max:255',
'email' => 'required|string|email|max:255'
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
return redirect('insert')
->withInput()
->withErrors($validator);
}
else{
$data = $request->input();
try{
$student = new StudInsert;
$student->first_name = $data['first_name'];
$student->last_name = $data['last_name'];
$student->city_name = $data['city_name'];
$student->email = $data['email'];
$student->save();
return redirect('insert')->with('status',"Insert successfully");
}
catch(Exception $e){
return redirect('insert')->with('failed',"operation failed");
}
}
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class StudInsert extends Model
{
protected $table = 'student_details';
public $timestamps = true;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'first_name', 'last_name','city_name', 'email',
];
}
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
//insert data
Route::get('insert','StudInsertController@insertform');
Route::post('create','StudInsertController@insert');