我正在尝试在 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 做一个网络项目。我的项目名称是研究论文管理系统。我们的类(class)老师禁止我们使用 laravel 模型并告诉我们按以下方式执行任何查询。 $sql = "一些查询"; mysqli($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 .
关于mysql - 如何在laravel中执行带有参数调用的过程的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56648157/