Laravel DB :: insert()和DB :: table()之间的区别 - > insert()

时间:2016-08-24 09:07:56

标签: database laravel insert

我一直想弄清楚哪一个使用的时候,如果我应该同时使用它们。

一直在看Laravel文档,他们都在那里。从我可以做到的,DB::insert()提供了比DB::table()->insert()更多的“量身定制”查询。

当涉及到如何以及何时使用时,是否有人能够澄清两者之间的区别究竟是什么?

2 个答案:

答案 0 :(得分:16)

  • DB::insert()代表raw sql queries。例如:

    DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);

  • DB::table()->insert()代表query builder。例如:

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

查询构建器将条件编译为原始sql查询,但我使用它是因为它更方便

答案 1 :(得分:0)

您总是尝试尽可能多地使用查询生成器,这样可以防止SQL注入。

Laravel查询构建器使用PDO参数绑定来保护您的应用程序免受SQL注入攻击。无需清理作为绑定传递的字符串

查询生成器还可以帮助在值中使用特殊字符,例如','。对于原始语句,您需要自己处理特殊字符。