gpt4 book ai didi

mysql - Laravel 如何与数据库交互

转载 作者:行者123 更新时间:2023-11-29 07:19:15 25 4
gpt4 key购买 nike

我已经在谷歌上搜索了几天,但找不到解决方案。我想知道 laravel 应用程序如何打开与 mysql 数据库的连接。

案例一:

//open db connection
\DB::table('test')->insert(['name' => Str::random(15)]);
//does laravel close connection after done and open a new one when have new query?
\DB::table('test')->insert(['name' => Str::random(15)]);
//close connection

案例2:

//What will happen if we use \DB transaction (compare with case1)
\DB::beginTransaction();
\DB::table('test')->insert(['name' => Str::random(15)]);
\DB::table('test')->insert(['name' => Str::random(15)]);
\DB::commit();

案例3:

\DB::beginTransaction();
\DB::table('test')->insert(['name' => Str::random(15)]);
\DB::table('test')->insert(['name' => Str::random(15)]);
\DB::table('test')->insert(['name' => Str::random(15)]);
\DB::rollback();

//3 query statements will be rollback? So do anything happen with the database or nothing?

感谢您的帮助。

最佳答案

这是我的答案

案例一:

两个查询将使用相同的连接。 Laravel 对一个请求使用一个连接(你也可以创建多个连接,但默认情况下它总是使用一个连接)

案例2:

您在此处手动提交更改,这意味着您正在事务内创建检查点。已提交的更改无法回滚。在这种情况下,Laravel 也使用它在启动时创建的相同连接。

案例3:

所有三个插入都将回滚

注意:DB::beginTransaction() 必须有 DB::endTransaction() 才能关闭事务。

注意:数据库事务也是类似于普通插入或选择查询的查询。在上述所有情况下,Laravel 只是准备查询并使用它拥有的连接将其发送到数据库。

关于mysql - Laravel 如何与数据库交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57176207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com