Friday, 20 August 2021

How to Debug SQL Queries in Laravel

Debugging SQL queries in complex Laravel projects can be challenging sometimes. We can debug database queries in Laravel by following different methods and techniques.

1. Dump and Die dd() function

dd() function will stop execution and display information. It is used to display the SQL query results.


For example:$p = DB::table('products_data')->get();
dd($p);

or

Product::all()->dd();


The above queries will dump and die the SQL query results.

2. dump() function

dump function displays debug information and continues execution.

For example:

Category::all()->dump();

3. toSql() method 

We can use toSql() method in any eloquent query in Laravel with the help of this method
we can get SQL raw query very easily without executing it.


For Example:
$q = DB::table('orders')->where('status', 'active');
$sql = $q->toSql();
dd($q);


This will result in an SQL query in a string form.

4. DB::raw() for Complex Queries

if you want to use direct SQL queries in Laravel then you can use DB::raw.

For example: 
$q = DB::raw('SELECT * FROM users WHERE status = ?', ['active']);
dd($q);

By using DB::raw query you can directly pinpoint the exact cause of the error immediately.


Conclusion
These SQL debugging techniques help you save a lot of time in fixing the SQL query issues and
pinpointing the exact issue.Also, these will make sure all queries are executed and generated properly without issue.

Friday, 13 August 2021

Laravel session driver file or database


 Laravel Session Driver database

To use the session driver database we need to make the following changes.

Updated .env file as follows:


SESSION_DRIVER=database


Make sure session_driver is set  config/session.php

'driver' => env('SESSION_DRIVER', 'database'),


Now run the command and create a session migration  


php artisan session:table


The above command will create a migration of the session table.

 To create a session table we need to run the laravel artisan command. 


php artisan migrate


You will see the session table structure something


create table sessions

(

  id varchar(255) not null,

  user_id int(10) unsigned null,

  ip_address varchar(45) null,

  user_agent text null,

  payload text not null,

  last_activity int not null,

  constraint sessions_id_unique

  unique (id)

);

If all goes well then laravel sessions will be stored in the database session table. 


Laravel Session Driver File


We need to update the session drive in .env to file 

SESSION_DRIVER=file


That is all we need to do if we want to use the file as a session driver file. 



Laravel csrf token mismatch for ajax post request

Error "CSRF Token Mismatch" commonly occurs if tokens do not match in both sessions and sent , and received requests.CSRF token he...