2016-11-21 19 views
2

Laravel 5.1で作業しています。私は以下の質問があります。 phpMyAdminでは正常に動作します。また、$category$valueをハードコードすると機能します。しかし、変数を連結したりエスケープしたりすることで、コントローラでクエリを実行することはできません。私はuse Illuminate\Support\Facades\DB;を使用しています。一重引用符と二重引用符でクエリをカプセル化しようとしましたが効果はありません。私はPHPStormを使用していて、クエリが正しいと言っていますが、そうではありません。私は何を間違えているのですか?PHP変数をLaravel DBに渡す方法::準備されていないクエリ

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 !!

答えて

0

方法が分かりやすいとき。連結やバックスラッシュは忘れてください。これを使用してください:

$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;"); 
関連する問題