我正在尝试在laravel中执行以下代码...
$sql = "SET @p0='$p_id'; CALL `rating_avg`(@p0);";
$pp = mysqli_query($link,$sql);
if($pp == false)die("QUERY DIDN'T EXECUTE");
但总是显示“查询无法执行”
我正在使用Laravel做一个Web项目。我的项目名称是研究论文管理系统。我们的课程老师禁止我们使用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()在这里不起作用。
答案 0 :(得分:0)
为此尝试使用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。