Laravel永远不会结束EXEC

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)

我已经搜索了很多这个问题,但没有找到解决办法.我会感谢任何帮助

Sim*_*n R 3

我将访问底层 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)