次のサンプルのような、一定のスコア以上のユーザをSelectしたいのですが、
プリペアドステートメント使うと、うまく取得できないみたいなどうさをしています。
whereRawで、where節を直書きすると、うまく取得できます。
不思議な挙動なのですが、理由はわかりますでしょうか?
特殊な事をしているというのは、scoreカラムはbigint型です。
サンプルコード
$sample1 = User::where('score', ">=", 90)->get(); => NG(該当なし) $sample2 = User::whereRaw('score >= :from', ['from' => 90])->get(); => NG(該当なし) $sample3 = User::whereRaw('score >= 90')->get(); => OK(該当あり)
環境
PHP:7.1
Laravel:5.5
mysql:5.6
回答2件
あなたの回答
tips
プレビュー