gpt4 book ai didi

php - Laravel 永无止境的 EXEC

转载 作者:可可西里 更新时间:2023-10-31 22:49:49 24 4
gpt4 key购买 nike

我正在将一个程序从纯 PHP 重写到 Laravel,我在执行存储过程时遇到了问题(我没有写它)。

当我尝试

$sheetLines = DB::select("exec XXXXXXX".dbo.PRICELIST '?'", [$id]); 

当 PHP 还没有达到最大内存时,它会继续运行。 (增加内存只会让它跑得更久)

同时在旧程序中它需要大约 3 秒并发送响应。

$tsql = "exec XXXXXXX.".dbo.PRICELIST '".$id."'";

此外,当我从其他模块调用其他存储过程时,一切正常。

我注意到如果我尝试这样的事情也会发生,例如:

DB::select(count(price) from orders group by price);
// would work with: count(price) as price_count

我已经搜索了很多这个问题,但没有找到解决方案。如果有任何帮助,我将不胜感激

最佳答案

我会访问底层 PDO 驱动程序来执行存储过程。

尝试

$db = DB::getPdo();

$stmt = $db->prepare("EXEC XXXXXXX.dbo.PRICELIST :id");
$stmt->bindValue(':id', $id);

$result = $stmt->execute();

如果不行你可以试试query方法;

$query = DB::getPdo()->query("EXEC XXXXXXX.dbo.PRICELIST $id");

关于您的计数问题,在 Laravel 的 Eloquent 中,您可以执行以下操作;

$count = DB::table('orders')->groupBy('price')->count('price');

关于php - Laravel 永无止境的 EXEC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49513304/

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