NoO*_*Z24 10 php sql-server stored-procedures laravel laravel-5.3
我正在从纯PHP到Laravel重写一个程序,我遇到了执行存储过程的问题(我没有写它).
当我尝试
$sheetLines = DB::select("exec XXXXXXX".dbo.PRICELIST '?'", [$id]);
Run Code Online (Sandbox Code Playgroud)
它继续运行,而PHP还没有达到最大内存.(增加内存只会让它运行更长时间)
同时,一个旧程序需要大约3秒钟并发送响应.
$tsql = "exec XXXXXXX.".dbo.PRICELIST '".$id."'";
Run Code Online (Sandbox Code Playgroud)
此外,当我从其他模块调用其他存储过程时,一切正常.
我注意到如果我尝试例如这样的事情也会发生:
DB::select(count(price) from orders group by price);
// would work with: count(price) as price_count
Run Code Online (Sandbox Code Playgroud)
我已经搜索了很多这个问题,但没有找到解决办法.我会感谢任何帮助
我将访问底层 PDO 驱动程序来执行存储过程。
尝试
$db = DB::getPdo();
$stmt = $db->prepare("EXEC XXXXXXX.dbo.PRICELIST :id");
$stmt->bindValue(':id', $id);
$result = $stmt->execute();
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,您可以尝试查询方法;
$query = DB::getPdo()->query("EXEC XXXXXXX.dbo.PRICELIST $id");
Run Code Online (Sandbox Code Playgroud)
关于你的计数问题,在 Laravel 的 Eloquent 中你可以执行以下操作;
$count = DB::table('orders')->groupBy('price')->count('price');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
272 次 |
| 最近记录: |