[英]How to execute a raw sql query with multiple statement with laravel
無論如何,我可以使用laravel框架使用如下所示的多個語句執行查詢。 我曾嘗試使用DB::statement
但返回了一個 sql 語法錯誤,但是當我在 phpmyadmin 上執行相同的查詢時,我工作了,這太令人沮喪了。 請幫我。
LOCK TABLE topics WRITE;
SELECT @pRgt := rgt FROM topics WHERE id = ?;
UPDATE topics SET lft = lft + 2 WHERE rgt > @pRgt;
UPDATE topics SET rgt = rgt + 2 WHERE rgt >= @pRgt;
INSERT INTO topics (title, overview, article, image, lft, rgt)
VALUES (?, ?, ?, ?, @pRgt, @pRgt + 1);
UNLOCK TABLES;
DB::unprepared()
unprepared DB::unprepared()
應該可以解決問題,laravel 准備並為 sql 查詢做一些事情。
但是,您可以使用DB::unprepared
使用絕對原始的。
例如
DB::unprepared('LOCK TABLE topics WRITE;
SELECT @pRgt := rgt FROM topics WHERE id = ?;
UPDATE topics SET lft = lft + 2 WHERE rgt > @pRgt;
UPDATE topics SET rgt = rgt + 2 WHERE rgt >= @pRgt;
INSERT INTO topics (title, overview, article, image, lft, rgt)
VALUES (?, ?, ?, ?, @pRgt, @pRgt + 1);
UNLOCK TABLES;');
無論是單個/多個語句,它都會執行您的整個 SQL 查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.