如果我做
DB::statement("SET @foo := 1;");
DB::select("SELECT @foo;");
Run Code Online (Sandbox Code Playgroud)
我得到了预期1的结果.但我无论在哪里都找不到它是否有保证的结果.如果我理解正确,变量是特定于MySQL连接的.因此,由于某种原因,这两个语句可能会在不同的连接上执行,我会得到不同的结果吗?我可以依靠它始终工作吗?
关于 laravel 你需要知道一件事,它会在脚本结束后断开连接,因为它不使用持久连接来避免这种情况
与任何其他执行持久连接的 PHP 数据库接口一样,使用 PDO 也存在同样的缺点:如果您的脚本在数据库操作过程中意外终止,则获取剩余连接的下一个请求将从失效脚本停止的位置继续。
因此,只要您正在执行的语句位于同一个脚本中,并且每次都一起运行,您就可以依赖返回的结果,一旦脚本结束,变量将被删除。
希望这能为您解决问题。
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |