目次
raw raw select queriesにDB::select()を使用します
raw Raw UpdateクエリにDB::update()を使用します
DB::insert()を使用して、生の挿入クエリに挿入します
DB::delete()
schemaまたは非選択クエリにDB::statement()を使用します
queryクエリビルダーで生式を使用する(より安全な代替)
DB::unprepared()を使用する(推奨されない)
一般的な方法の概要
ホームページ PHPフレームワーク Laravel Laravel Raw SQLクエリの例

Laravel Raw SQLクエリの例

Jul 29, 2025 am 02:59 AM
java プログラミング

LaravelはネイティブSQLクエリをサポートしていますが、安全性を確保するにはパラメーターバインディングが優先される必要があります。 1。DB:: Select()を使用して、SQL注入を防ぐためにパラメーターバインディングを使用して選択クエリを実行します。 2。db:: update()を使用して更新操作を実行し、影響を受ける行の数を返します。 3。DB::挿入()を使用してデータを挿入します。 4。db:: delete()を使用してデータを削除します。 5。DB:: Statement()を使用して、Create、Alterなどの結果セットなしでSQLステートメントを実行します。 6.セキュリティを改善するためにネイティブ表現を組み合わせて、クエリビルダーでWhereraw、SelectRaw、およびその他の方法を使用することをお勧めします。 7. DB :: Unprepared()を使用してユーザー入力を処理しないでください。信頼できる内部操作にのみ使用されます。要するに、ネイティブSQLは利用可能ですが、パラメーターバインディングを通じてセキュリティを保証する必要があり、より安全なクエリビルダー拡張法が推奨されます。

Laravel Raw SQLクエリの例

Laravelでは、Eloquent ORMとクエリビルダーが一般的に使用されていますが、複雑な操作またはパフォーマンスの最適化のためにRAW SQLクエリを作成する必要がある場合があります。 Laravelは、RAW SQLを安全かつ効果的に実行するいくつかの方法を提供します。

Laravel Raw SQLクエリの例

LaravelでRAW SQLを使用する実用的な例は次のとおりです。


raw raw select queriesにDB::select()を使用します

Illuminate \ support \ facades \ dbを使用します。

$ users = db :: select( 'select * from users where age>?'、[18]);
  • 最初のパラメーターはRAW SQLです。
  • 2つ目は、一連のバインディングです(SQL注入を防ぐため)。
  • stdClassオブジェクトの配列を返します。

注:変数を直接連結する代わりに、常にパラメーターバインディング( [18] )を使用します。

Laravel Raw SQLクエリの例

raw Raw UpdateクエリにDB::update()を使用します

$ riffected = db :: update( '更新ユーザーは投票=?where name =?'、[100、 'john']);
  • 影響を受ける行の数を返します。

DB::insert()を使用して、生の挿入クエリに挿入します

db :: insert( 'ユーザーに挿入(名前、電子メール、年齢)値(?、?、?)'、[
    「ジェーン・ドー」、
    「jane@example.com」、
    25
]);

DB::delete()

 $ deleted = db :: delete( &#39;age <?&#39;、[18]);

schemaまたは非選択クエリにDB::statement()を使用します

これを、結果を返さない生のSQLに使用します(たとえば、 CREATEALTERDROP ):

 db ::ステートメント( &#39;存在しない場合は&#39;テーブルを作成するtemp_users(id int auto_incrementプライマリキー、name varchar(255)) &#39;);

queryクエリビルダーで生式を使用する(より安全な代替)

完全な生のクエリの代わりに、必要に応じて生の表現を注入できます。

Laravel Raw SQLクエリの例
 $ users = db :: table( &#39;users&#39;)
     - > whereraw( &#39;age>?and status =?&#39;、[18、 &#39;Active&#39;])
     - > selectraw( &#39;id、name、updated_at、(age * 2)as doubled_age&#39;)
     - > get();

または生の表現による注文:

 - > OrderByraw( &#39;name asc、created_at desc&#39;)

DB::unprepared()を使用する(推奨されない)

これは、バインディングなしで生のSQLを実行します。ユーザー入力が関与している場合は危険です

 db :: unprepared( &#39;ドロップテーブルusers_backup&#39;);

ovied§信頼できる内部操作(移行、セットアップスクリプトなど)にのみ使用します。


一般的な方法の概要

方法 使用事例
DB::select() 生の選択クエリ
DB::update() 生の更新クエリ
DB::insert() 生の挿入クエリ
DB::delete() raw削除クエリ
DB::statement() スキーマまたはDDLクエリ
DB::unprepared() 安全でない - 動的入力で避けてください

雄弁なモデル内で作業している場合、またはより柔軟性が必要な場合は、完全な生のクエリではなく、生の表現( whereRawselectRawなど)の使用を検討してください。それらはより安全で、Laravelのエコシステムとより良く統合します。

基本的に、RAW SQLはサポートされていますが、常にパラメーターのバインディングを優先し、ユーザーデータのunpreparedていません。

以上がLaravel Raw SQLクエリの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravel Lazy Loadingと熱心な読み込み Laravel Lazy Loadingと熱心な読み込み Jul 28, 2025 am 04:23 AM

怠zyな読み込みは、アソシエーションにアクセスするときにクエリのみであり、n 1の問題に簡単につながる可能性があります。これは、関連データが必要かどうかが判断されないシナリオに適しています。 2。()を使用して緊急読み込みを使用して関連データをロードして、バッチ処理シナリオに適したn 1クエリを回避します。 3.緊急荷重を使用してパフォーマンスを最適化する必要があり、N 1の問題はLaraveldebugbarなどのツールを介して検出できます。モデルの属性を備えた$は、不必要なパフォーマンスオーバーヘッドを避けるために慎重に使用されます。

PHPを機械学習モデルと統合します PHPを機械学習モデルと統合します Jul 28, 2025 am 04:37 AM

usearestapitobridgephpandmlmodelsbyrunningthemodelinpythonviaflaskorapiandapiandcallingtfromphpusingcurlorguzzle.2.runpythosscriptsdirectlyfrompurspusingec()orshell_exec()

Laravel Raw SQLクエリの例 Laravel Raw SQLクエリの例 Jul 29, 2025 am 02:59 AM

Laravelは、ネイティブSQLクエリの使用をサポートしていますが、安全性を確保するためにパラメーターバインディングを優先する必要があります。 1。DB:: Select()を使用して、SQL注入を防ぐためにパラメーターバインディングを使用して選択クエリを実行します。 2。db:: update()を使用して更新操作を実行し、影響を受ける行の数を返します。 3。DB::挿入()を使用してデータを挿入します。 4。db:: delete()を使用してデータを削除します。 5。DB:: Statement()を使用して、Create、Alterなどの結果セットなしでSQLステートメントを実行します。 6. QueryBuilderでWhereraw、SelectRaw、およびその他の方法を使用して、ネイティブ表現を組み合わせてセキュリティを改善することをお勧めします

Javaアプリケーションでメモリ使用量を最適化します Javaアプリケーションでメモリ使用量を最適化します Jul 28, 2025 am 02:40 AM

EfficientDataStructureSlikEarrayLayListLinkEdlistAndPrimitiveCollectionStoreduceOverhead;

Pythonの成分演算子の例 Pythonの成分演算子の例 Jul 28, 2025 am 02:57 AM

Pythonの3成分演算子は、if-elseの判断を簡潔に実装するために使用され、その構文は「value_if_trueif conditionelsevalue_if_false」です。 1.正と負の値に基づいて対応する文字列を返すなど、単純な割り当てに使用できます。 2。分母がゼロ以外であることを決定するなど、分割エラーを回避できます。 3.文字列形式の条件に応じてコンテンツを選択できます。 4.リスト派生式の異なる要素にラベルを割り当てることができます。この演算子はバイナリ分岐にのみ適しており、複数の層をネストしないでください。複雑なロジックは、従来のIF-Elif-Else構造を使用して、読みやすさを確保する必要があります。

Project ReactorとSpring WebFluxを使用したJavaでのリアクティブプログラミング Project ReactorとSpring WebFluxを使用したJavaでのリアクティブプログラミング Jul 29, 2025 am 12:04 AM

レスポンシブプログラミングは、ProjectReactorおよびSpringWebFluxを介してJavaでの低レイテンシの非ブロッキングサービスを実装します。 1. ProjectReactorは、2つのコアタイプを提供します。モノとフラックスは、非同期データフローの宣言的処理をサポートし、オペレーターチェーンを介した変換、フィルター、およびその他の操作をサポートします。 2。SpringWebFluxは反応器上に構築され、2つのプログラミングモデルをサポートします:注釈と機能。 Nettyなどの非ブロッキングサーバーで実行され、多数の同時接続を効率的に処理できます。 3. WebFlux Reactorを使用すると、I/O集約型シナリオでの並行性の機能とリソースの使用率が向上し、SSEとWebSOを自然にサポートします。

CSSテーブルレイアウト修正例 CSSテーブルレイアウト修正例 Jul 29, 2025 am 04:28 AM

テーブルレイアウト:固定は、レイアウトに影響するコンテンツを避けるために、最初の行のセル幅によってテーブル列の幅を強制的に決定します。 1.テーブルレイアウトの設定:テーブル幅を修正して指定します。 2.最初の行th/tdの特定の列幅比を設定します。 3。ホワイトスペースを使用:Nowrap、Overflow:Hidden and Text-Overflow:Ellipsisを使用してテキストオーバーフローを制御します。 4。安定したレイアウトと高性能レンダリングを必要とするバックグラウンド管理、データレポート、およびその他のシナリオに適用できます。これは、レイアウトジッターを効果的に防止し、レンダリング効率を向上させることができます。

メモ帳の検索と交換は、正規表現グループに置き換えます メモ帳の検索と交換は、正規表現グループに置き換えます Jul 28, 2025 am 02:17 AM

メモ帳の正規表現キャプチャグループを使用して、テキストを効果的に再編成します。まず、交換ダイアログボックス(Ctrl H)を開き、「正規表現」として「検索モード」を選択する必要があります。 2。\ 1および\ 2を使用して、交換ボックス内の対応するグループを参照します。 3。例:「ジョンドー」という名前を「doe、john」と交換し、(\ w)\ s(\ w)を見つけ、\ 2、\ 1に置き換えます。 4。日付の形式変換2023-12-25から25/12/2023、find(\ d {4}) - (\ d {2}) - (\ d {2})を見つけ、\ 3/\ 2/\ 1に置き換えます。 5.ログの並べ替えは、時間、レベル、ID、その他の情報を抽出できます

See all articles