問題タブ [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.

0 投票する
3 に答える
1739 参照

sql - FROM 句のパラメータ化された SQL

を使用しOleDbCommandます。SQL パラメータを追加して、SQL インジェクションからクエリを安全に保つことができますが、これを節内で行う方法はありますFROMか。以下を参照してください。

これは機能します

id = 1 の素晴らしい行を含む素敵なテーブルを返します

しかし

私はこのようなものを探しています。FROM句に注意してください

DBMSは戻り続けます"Error in From clause"

PS すべてのスペルが正しい - 私は三重にチェックした


すべての皆様へ - ありがとうございます。Dynamic SQLOne BITは好きじゃない

0 投票する
2 に答える
3136 参照

delphi - ADOに関する限り、nvarchar(max)の大きさはどれくらいですか?

ADOに対してパラメーター化されたクエリを使用しようとしています:

INSERT INTO Foo(Name、Value)VALUES(@name、@value)

SQL Serverでは、Name列はvarcharタイプです。Value列はですnvarchar(max)

サイズがわからない、または指定したい場合、パラメータを作成するときにどのサイズを渡しますか?

単純な代替案は次のようになります。

すでに行われています。しかし、パラメーター化されたクエリを実行可能なソリューションにしようとして数日を費やし、を書く必要がないようにQuotedStrWしようと思いました。

0 投票する
3 に答える
5269 参照

sql-server - ADOパラメータ化クエリで「変数@myvariableを宣言する必要があります」エラー

ADOでパラメーター化されたクエリを使用しようとしています。オブジェクトを実行するとCommand、エラーがスローされます。

変数'@filename'を宣言する必要があります

私は以下@filenameを使用してパラメータを宣言しますCreateParameter/Append

私は何が間違っているのですか?

0 投票する
2 に答える
1680 参照

delphi - TADOCommand パラメータ化クエリを使用してワイド文字列をパラメータ化する方法は?

Delphi TADOCommand でパラメータ化されたクエリを使用しようとしています。

データベース内の結果のデータは完全に壊れています。

C?:\U?s?er?s?\i??n?.A?V`A?T?O?P?I?A?\A?p?p?D??t??\L ?o???l?\A?v?at??r? S?o?f?t?w?är?? C?r??t?i??n?s?\S?o°f?t?w?r?? Q?u??li?t?y? M??t?r?i?cs?\C??S?-s?q?m?00.x?m?l


ネイティブのパラメーター化された ADOオブジェクトを使用できます。Commandデータを正しく保存します。

C̬:\ȗŝḙR͇S̶\

ただし、非常に壊れやすく、本番環境での使用には適していません

TADOCommandDelphiで unicode/WideStrings を使用するにはどうすればよいですか?

ボーナスおしゃべり

SQL Server プロファイラーでは、SQL が実行されていることを確認できます。

exec sp_executesql N'INSERT INTO Sqm(Filename) VALUES(@P1)', N'@P1 char(300),@P2 text', 'C?:\Us?er?s?\i?än?.A? V?A?T?O?P?I?À\A?p?p?D?ât?a\L?o?çal¯\A?v?at??r? だから?f?t?w?ar?? C?r??á?i?o?n?s?\So¸f"t?w?ar?? Q?u??l?i?ty? M??t?r?i¸?s` \C?M°S?-s?q?m?00.?m¨´l¯ '

これは問題を指摘しています -WideStringパラメータをchar(300)値として構築しています。壊れないようにする。

パラメータホールに入る前にWideStringを最後に見たのは次のとおりです。

どこ

  • NewValue適切な値を持つタイプVT_BSTR(aka )のバリアントですvarOleStr
  • ParameterObjectは129のネイティブ ADO_Parameterオブジェクトです ( ).TypeadChar

パラメータタイプを強制しようとしても:

役に立ちません。

注:この質問は、パラメータ化する方法に関するシリーズの一部ですINSERT INTO foo (value) VALUES (%s)

0 投票する
1 に答える
361 参照

php - PostgreSQL を使用した PHP での IN / =ANY 句の配列のパラメーター化

パラメータ化されたクエリで文字列の配列を渡す必要があります。以下を試してみましたが、まったく機能しません。

配列を文字列に変換し、string_to_array を使用して入力をデータベース側の配列に変換するソリューションを見てきましたが、これらの文字列はユーザ​​ーからの入力であるため、a 以外の区切り文字を使用したとしても、これはうまくいかない可能性があります。コンマ。可能であれば、これにはよりクリーンなソリューションを使用したいと思います。

データを文字列に変換せずに、このクエリをパラメータ化して配列を渡す方法はありますか?

ちなみに、私はPostgreSQL 8.3を使用しています

0 投票する
2 に答える
505 参照

c# - 動的なwhereclasueを使用したパラメーター化されたクエリ

だから私はこのクエリを持っています:

SQLインジェクションなどに対するパラメータ化されたクエリについて読んだことがあります。(検索モデルに基づいて)動的な数のWHERE句があるとすると、クエリをパラメーター化するにはどうすればよいですか?WHERE a = @A AND b=@B...ユーザーがすべての列に基づいて検索する必要がないため、配置できません。

何か案が?前もって感謝します。

PS: LINQまたはそれに類似したもの(-ビジネスルール-)は使用できません。

0 投票する
1 に答える
1161 参照

sql - postgresql のブールワイルドカード

ユーザーが PHP フロントエンドを介して対話するパラメーター化された postgresql クエリがあります。パラメーターの 1 つにブール値が含まれており、ユーザーに「True」、「False」、「Unknown」(Null)、または「問題ではない」(任意の結果を返す) のオプションを提供したいと考えています。

実際のクエリを書き換えることはできません (パラメータ化されたクエリは、PHP コードではなくデータベース テーブルに格納されます)。そのため、ブール値の "any" 値が必要です。

別の言い方をすれば、「boolean_column」の値に関係なく、行を取得するために、このクエリで「:parameter1」にどの値を割り当てることができますか?

編集:明確にする必要があります-クエリ書き換えることはできますが、プログラムはクエリを書き換えることができません(つまり、実行時にユーザー入力に応答してwhere句を削除または書き換えることはできません)。

EDIT2:これが私の最終的な解決策です(ありがとうクーリング!)

もちろん、プログラムは可能な値を「any」またはブール値にキャストできる文字列値 (「true」、「t」、「false」、「f」など) に制限する必要があります。

EDIT3: 前のソリューションは PDO を使用する PHP では機能しますが、何らかの理由で Python の psycopg2 または直接 postgresql では機能しません。次のように、case ステートメントを使用してバリエーションを試しました。

しかし、それもうまくいきません。何があっても、偽の WHEN 条件の背後にある場合でも、postgresql が ":parameter1::boolean" を評価しようとするのを止めることはできません。これが本当のお漬物…

0 投票する
1 に答える
3976 参照

c# - 文字から数値への変換プロセスが失敗しました

でパラメーター化されたクエリを使用しようとすると、次の例外に直面しますinformix



0 投票する
2 に答える
18622 参照

php - PDOエラー:「無効なパラメーター番号:パラメーターが定義されていません」

配列形式のパラメーターを使用して、単純なMySQL挿入クエリを使用しようとしています。パラメータの数が間違っていると言われ続けます。私は次のことを試しましたが、すべて同じエラーが発生します。

ヌル挿入を回避するために列を明確に宣言するだけでなく、次のようになります。

PDOを使用するのはこれが初めてです(通常はmysqliを使用しますが、現在の共有ホストにはmysqlndプラグインがないため、prepare()を使用できません。そのため、その観点からの洞察をいただければ幸いです。

0 投票する
3 に答える
509 参照

c# - パラメータ化されたクエリで null を確認するにはどうすればよいですか?

以下に示すように、Access 2007 に対応するテーブルを持つクラスがあります。

これは、製品をデータベースに追加するために使用する方法です。

これで、ユーザーが null 値を入力してもかまいません。その場合、どうすれば AddProduct メソッドを更新できますか? 私の頭に浮かぶ唯一のケースは、以下のように各パラメーターに対してnullチェックを行うことです..

明らかな何かが欠けていますか?これらのパラメーター化されたクエリで null をチェックするための最良の方法は何ですか?