簡體   English   中英

如何將PHP變量傳遞到Laravel DB :: unprepared查詢

[英]How to pass PHP variable into Laravel DB::unprepared query

使用Laravel 5.1。 我在下面有這個查詢。 它在phpMyAdmin中工作正常。 如果我對$category$value硬編碼,它也將起作用。 但是沒有任何串聯和/或轉義變量使查詢在我的控制器中運行。 我正在使用use Illuminate\\Support\\Facades\\DB; 我嘗試用單引號和雙引號封裝查詢,但沒有任何效果。 我正在使用PHPStorm,它甚至說查詢是正確的,但事實並非如此。 我究竟做錯了什么 ??

public function addNode(Request $request)
{

$category = $request->input('parent_category');
$value = $request->input('new_category');


$result = DB::unprepared("
LOCK TABLE nested_categories WRITE;
SELECT @myLeft := lft FROM nested_categories
WHERE name =  '.\'$category\'.';
UPDATE nested_categories SET rgt = rgt + 2 WHERE rgt > @myLeft;
UPDATE nested_categories SET lft = lft + 2 WHERE lft > @myLeft;
INSERT INTO nested_categories(name, lft, rgt) VALUES( '.\'$value\'.', @myLeft + 1, @myLeft + 2);
UNLOCK TABLES;");

return redirect('nested_categories');
}

TKS!

當您知道如何時就很容易。 忘記級聯或反斜杠。 只需使用此:

$category = $request->input('parent_category');
$value = $request->input('new_category');

$result = DB::unprepared("
LOCK TABLE nested_categories WRITE;
SELECT @myLeft := lft FROM nested_categories
WHERE name =  '$category';
UPDATE nested_categories SET rgt = rgt + 2 WHERE rgt > @myLeft;
UPDATE nested_categories SET lft = lft + 2 WHERE lft > @myLeft;
INSERT INTO nested_categories(name, lft, rgt) VALUES( '$value', @myLeft + 1, @myLeft + 2);
UNLOCK TABLES;");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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