Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Lars-Janssen's avatar

Raw insert query

How could I make a raw insert query?

So not like this:

DB::table('users')->insert(
    array('email' => 'john@example.com', 'votes' => 0)
);

But a raw query.

0 likes
5 replies
tykus's avatar
tykus
Best Answer
Level 104
DB::insert('insert into users (email, votes) values (?, ?)', ['john@example.com', '0']);
4 likes
vstruhar's avatar

For raw batch insert you could use:

DB::unprepared("
    insert into users (email, votes) values ('[email protected]', 10);
    insert into users (email, votes) values ('[email protected]', 12);
");

Just be careful of SQL injection

This could be very useful when quickly populating database in tests.

2 likes
basirafeef's avatar

@vstruhar thanks for sharing great knowledge sir. i have an api which accept multiple json objects as json array for insertion, how to convert json array to php array that laravel database systems accept for multiple insertion or direct insert json using laravel database systems? please help me with some examples.

json array : $jsonData = [ {"name" : "name 1", "age" : 18}, {"name" : "name 2", "age" : 19}, {"name" : "name 3", "age" : 18} ]; To php array : $phpArryOfJsonData = [ ["name"=>"name 1", "age"=> 18], ["name"=>"name 2", "age"=> 19], ["name"=>"name 3", "age"=> 18] ];

database mode : User :: insert($phpArryOfJsonData);

Thanks a lot for helping me.

yourahmeddev's avatar

DB::insert('insert into posts (title, description, is_published, is_active) values(?,?,?,?)', ['New second post using Query Builder', 'New Post using Query Builder desc', '1','0' ]); } this syntax work for me when I need to insert data in DB using RAW insert query

Please or to participate in this conversation.