laravel中如何执行带参数调用过程的查询

How to execute the query of procedure with parameter calling in laravel

我正在尝试在 laravel...

中执行以下代码
$sql = "SET @p0='$p_id'; CALL `rating_avg`(@p0);";
$pp = mysqli_query($link,$sql);
if($pp == false)die("QUERY DIDN'T EXECUTE");

但总是显示QUERY DIDN'T EXECUTE

我正在使用 Laravel 做一个网络项目。我的项目名称是研究论文管理系统。我们的课程老师禁止我们使用 laravel 模型,并告诉我们按以下方式执行任何查询。 $sql = "SOME QUERY";我的sqli($database_connect , $sql);

这就是为什么我试图按照我们老师的条款和条件执行以下操作...

$sql = "SET @p0='$p_id'; CALL `rating_avg`(@p0);";
$pp = mysqli_query($link,$sql);
if($pp == false)die("QUERY DIDN'T EXECUTE");

这里'rating_avg'是一个程序。我在 phpMyadmin 数据库中手动创建了它。创建时我发现了以下查询...

CREATE PROCEDURE `rating_avg`(IN `pid` INT) DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER select avg(reviewer_given_rating) AS v from paper_has_reviews where paper_id=pid;

一切都很好。我只是不知道如何 运行 查询 $sql = "SET @p0='$p_id'; CALL rating_avg(@p0);";

mysqli_query() 在这里不起作用。

为此尝试使用 DB::statement()

// Splitting it into separate statements makes for better code structure.
DB::statement("SET @p0='$p_id'");
DB::statement("CALL rating_avg(@p0)");

但这需要您在 Laravel 应用程序中正确配置数据库连接。我建议你访问 official documentation on the matter.