私は名前でユーザーを検索するための単純なクエリを作成しようとしています最新のLaravel 5.4にLaravel 5.4列に文字列関数を適用する
を使用しています。 MySQL用に作成されたクエリは、次のようになります。
SELECT *
FROM users
WHERE upper(name) LIKE '%FOO%';
私はEloquentと連携しようとしています。物事は私が試したが、失敗しました:
User::where('upper(name)', 'LIKE', '%FOO%')->get()
DB::table('users')->where('upper(name)', 'LIKE', '%FOO%')->get()
の両方が次のエラーで失敗:
Illuminate\Database\QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'upper(name)' in 'where clause' (SQL: select * from
users
whereupper(name)
LIKE %FOO%)'
クエリが雄弁ので失敗しているようですバックワードでupper(email)
ステートメントをラップします。 ks( "` "、" `")。この問題を回避する方法はありますか、または列を大文字、小文字、e.t.cに変換するために特別な機能を使用する必要がありますか?
のようなクエリを生成するであろう、これはから守るんSQLインジェクションまたは渡された文字列を手動でエスケープする必要がありますか? – dimlucas
SQLインジェクションに対してもそれに対してではありません。 – Muthu17