問題タブ [parameterized-query]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 単純なパラメータ化されたクエリのエラー-Java/SQL
メソッド設計に関する以前の質問の1つに続いて、SQLクエリを単純な文字列ではなくパラメータ化されたクエリとして実装するようにアドバイスされました。
これまでパラメータ化されたクエリを使用したことがないので、簡単なものから始めることにしました。次のSelectステートメントを使用します。
これにより、次のエラーが発生します:「[SQLITE_ERROR] SQLエラーまたはデータベースがありません(「?」の近く:構文エラー)」
次に、追加の基準を持つ修正バージョンを試しました。
このバージョンは正常に動作します。私の最初の例では、パラメーター化されたクエリのポイントが欠落していますか、それとも正しく構成されていませんか?
ありがとう!
c# - メソッドの最適化 - C#
テーブル (文字列)、列の配列 (文字列)、値の配列 (オブジェクト) をパラメーターを介して渡すことができるメソッドを開発しました。これを使用して、パラメーター化されたクエリを作成します。コードの長さと複数の for ループがコードの匂いを放っていることは問題ありませんが、特に、列と値の間にコンマを挿入するために使用する方法は、別のより良い方法で実行できると感じています。
System.Data.SQLiteライブラリを使用してデータベースとやり取りしています。
ご提案ありがとうございます。
python - Pythonsqlite3パラメーター化されたドロップテーブル
Pythonでsqlite3テーブルを削除する際に問題が発生しました。標準sqlite3
モジュールを使用しています。
私にくれますOperationalError: near "?": syntax error
私がに変更sql
したとき:
それはうまくいきます。
mysql - CでのSQLインジェクションの防止
私は、いくつかのユーザー入力を受け取り、いくつかのデータベースクエリを実行するCアプリケーションを作成しています。私はここでSQLインジェクションのリスクをよく知っており、それを防ぎたいと思っています。
理想的にはパラメータ化されたクエリを使用しますが、これまでのところCでこの機能を備えたものを見つけることができませんでした。私は現在、クエリを次のように作成しています。
これができない場合は、ユーザー入力をフィルタリングする必要があります。このフィルタリングはどのように行う必要がありますか?すべての'と"を削除するだけで十分ですか?(有効な入力にそれらを含めることはできません)。そうであれば、Cでこれを行う最も簡単な方法は何ですか?
php - PHPでステートメントを準備せずにパラメータ化されたクエリ
MySQLi、PDO、またはPHPに、パラメーター化されたクエリを使用するが、後で呼び出す準備をしていないAPIはありますか?SQLParameterの.Prepare()メソッドを呼び出さないときにADO.NETで見つけましたが、PHPでは見つかりませんでした。
jsf - JPQLクエリを反復して動的にパラメータ化する方法は?
URL パラメーターとして単純な ID を持つページがあります。ここで行うことは、基本的に反復する必要がある関連エンティティの数を返すためのクエリを実行することです: LEAGUE ゲーム、CUP ゲーム、および PLAYOFFS ゲームについてゲームのスケジュールを返す必要があるため、結果リストはゲームごとに異なる必要があります。反復。
これらの各スケジュールは、GUI で独自のタブを取得します。RichFaces タブにはすでに JSTL c:forEach が必要なので、別の WHERE 制限をコンポーネント (ここでは Seam EntityQuery サブクラス インスタンス) に設定する方法を見つけるだけで十分です。
ここでの問題は、反復中に現在のエンティティを使用して各クエリをどのようにパラメーター化するかということです。Seam/JBoss EL ではどのように行うのが最適ですか? 反復中に EntityQuery インスタンスに別の制限を 1 つまたは 2 つ取得するにはどうすればよいですか?
私が使用するJSFコードは次のとおりです。
ここでの問題は、c:forEach のようなものを単純に呼び出すことができないことです#{rosterScheduleQuery.setCustomRestriction(pa.group.round.subCompetition.competition.name)}
。これは、この式が 1 回しか評価されないためです (私が正しく理解している場合)。これはすべてかなり手続き的なものなので、ここで全体的なポイントを見逃している可能性があります。
通常、反復および実行時にパラメータ化されたクエリ (追加の WHERE 条件) をどのように解決しますか? ベスト プラクティスはいつでも歓迎します。
ありがとう
編集:私はすでに Facelets を使用していますが、rich:tabPanel では JSTL c:forEach を使用する必要があります。http://relation.to/11633.laceを参照してください。
c# - パラメータ化された SQL 値の構文の問題
問題が何であるかはわかりませんが、私のコードは次のようになります。
私はパラメーター化された SQL をまったく使用していませんが、構文は私には正しいようです。私が取得し続けるエラーは次のとおりです。
スカラー変数「@initOwnerFirstName」を宣言する必要があります。私がそのようなステートメントを書いている理由は、SQLtext に追加する他の複数の if ステートメントを用意するつもりだからです。
編集: 私の構文は他の変数なしではほとんど意味がないため、if ステートメントの後のコード全体を次に示します。これは JYelton が提案した後にクリーンアップされましたが、それでも同じエラーが発生します。
c# - 大きなasp.net C# WebアプリケーションでのSQLインジェクションフォームの修正
SQL インジェクションに対して脆弱なプロジェクトを修正する必要があります。
プロジェクトのすべてのページのすべてのフォームは、パラメーター化されたクエリを使用せず、単に文字列クエリを使用します。
たとえば、検索ページがあり、コード ビハインドを見ると、CreateQuery()
例としてテキスト フィールドに基づいてクエリを作成するメソッドがあることがわかります。
次にbtnSearch_Click()
、クエリを実行するメソッドがあります。
私の質問は:
私は何百ものフォームと何千ものformText
値をFIXに持っているので、実装するための「迅速な」解決策はありますか?
- クエリをパラメータ化する、または何らかの方法で状況を処理するグローバル関数?
SubmitButton_Click()
すべてのクラスでコード ビハインド メソッドでクエリが実行されるため、ここで、もちろんすべてのクラスで状況を処理できますか?- すべてのフォームとコード ビハインドのすべてのエントリを変更して、SQL 文字列をパラメーター化する必要があります。これには 100 万年かかりますか?
(編集) 入力値のエンコード/デコードはどうですか? 上記の例は次のようになります。
これは一時的なパッチの可能性がありますか?
5-(編集)これは可能な解決策ですか、それとも単に何も変更しませんか?
問題は、クエリを処理するロジックが、文字列をクエリとして受け取る別のビジネス クラスで定義されているため、文字列を返さなければならないことです。CommandType または SqlDataAdapter を指定することはできません...
提案?
前もって感謝します。
c# - パラメーターの数が間違っています (パラメーター化されたクエリ)
Q:
次のパラメータ化されたクエリを実行しようとすると:
終えたcommand.ExecuteScalar();
次の例外をスローします。
ERROR [07001] [Informix .NET プロバイダ] パラメータの数が間違っています。
問題はどこだ?
編集: