Laravel如何管理MySQL变量?

Pom*_*oma 6 php mysql laravel

如果我做

DB::statement("SET @foo := 1;");
DB::select("SELECT @foo;");
Run Code Online (Sandbox Code Playgroud)

我得到了预期1的结果.但我无论在哪里都找不到它是否有保证的结果.如果我理解正确,变量是特定于MySQL连接的.因此,由于某种原因,这两个语句可能会在不同的连接上执行,我会得到不同的结果吗?我可以依靠它始终工作吗?

Ray*_*y A 0

关于 laravel 你需要知道一件事,它会在脚本结束后断开连接,因为它不使用持久连接来避免这种情况

与任何其他执行持久连接的 PHP 数据库接口一样,使用 PDO 也存在同样的缺点:如果您的脚本在数据库操作过程中意外终止,则获取剩余连接的下一个请求将从失效脚本​​停止的位置继续。

因此,只要您正在执行的语句位于同一个脚本中,并且每次都一起运行,您就可以依赖返回的结果,一旦脚本结束,变量将被删除。

希望这能为您解决问题。