簡體   English   中英

如何使用 Laravel 執行帶有多個語句的原始 sql 查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM