問題タブ [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 投票する
2 に答える
317 参照

php - MySQL パラメータ化クエリ - キャッシュ期間

重複の可能性:
準備されたステートメントは、PHP を使用して複数のページが読み込まれる間、サーバー側でキャッシュされますか?

私は新しいプロジェクトに取り組んでおり、パラメーター化されたクエリを初めて使用しています (PHP と MySQL DB)。パラメータ化されたクエリがキャッシュされていることを読みましたが、キャッシュされている期間が気になります。たとえば、ユーザー テーブルからすべてのアクティブなユーザー ID のリストを取得する関数「getAllUsers()」があり、ID ごとにユーザー オブジェクトが作成され、関数「getUser($user)」が呼び出されるとします。オブジェクトの他のプロパティを設定するために作成されました。「getUser()」関数には、関数の最後に stmt->close() を持つ独自の準備済みクエリがあります。

このようにすると、'getUser()' のパラメーター化されたクエリはキャッシュをまったく利用できますか、それとも stmt->close() のたびにクエリがキャッシュから破棄されますか?

注: ページが 1 つのユーザー オブジェクトのデータのみを必要とする場合も getUser() 関数を使用するので、ユーザー テーブルが変更された場合にクエリを 1 つだけ更新する必要があることを確認するために、この方法で実行したいと考えました。

これはこのようなことをする正しい方法ですか、それとももっと良い方法がありますか?

更新: 興味深いことに、php.net の準備済みステートメントのマニュアル ( http://php.net/manual/en/mysqli.quickstart.prepared-statements.php )でこれを見ました。

準備済みステートメントを使用することが、ステートメントを実行する最も効率的な方法であるとは限りません。一度だけ実行される準備されたステートメントは、準備されていないステートメントよりも多くのクライアントとサーバーのラウンドトリップを引き起こします。

したがって、パラメーター化されたクエリの主な利点は、SQL インジェクションから保護することであり、一度に繰り返されるクエリでない限り、必ずしも高速化することではないと思います。

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

ms-access - ms-access + vb6: ストアド クエリを使用しないパラメーター化されたクエリ

vb6(ADODB)を介したms-accessで、パラメーター化されたクエリのセキュリティ上の利点があるかどうか疑問に思っていました

ストアド プロシージャを使用せずに。したがって、次のようなものがあります:

それ以外の

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

c# - テーブル名と選択したフィールドをパラメーターとして渡す方法

次のエラーが表示されます。

ERROR:-201 メッセージ: [Informix .NET プロバイダ][Informix]構文エラーが発生しました。

このコードを実行しようとすると:

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

c# - Access SQL式の文字列変数で一重引用符または二重引用符を処理する方法

私はMicrosoft Accessデータベースを操作するためにC#でこの行を書きました

resxValue およびresxKey すべて文字列変数です。

2 つの文字列変数が「abc」、「xyz」などの単純な場合は問題ありませんが、1 つの文字列変数が複雑になると、私の場合は次のようになります。

チップ:

  1. 料金プランと RPT エラーを修正するには、「再処理」を使用します

  2. キャリア、トランク グループ、トレーダー エラーを修正するには、「削除して再挿入」を使用します

プログラムはエラーをスローし、デバッグを行うと、sComm.CommandText は次の形式になります。

TableToBeImport set TextDefault = 'TIPS: \r\n1 を更新します。料金プランと RPT エラーを修正するには、「再処理」を使用します\r\n2. キャリア、トランク グループ、トレーダー エラーを修正するには、「削除して再挿入」を使用します WHERE Con​​trolName = 'frmCDRQuery.label7.Text'

私はC#で@、文字列変数の前に使用できることを知っているので、その中のエスケープ文字は無視されます。しかし、アクセスでは、どうすれば同じ結果を得ることができますか?

0 投票する
4 に答える
876 参照

asp.net - asp.net での sql-injection を防ぐ

私は次の認証方法を持っています:

これはSQLインジェクションを防ぐのに十分ですか? 私は、次のようにユーザー名とパスワードだけをコマンドに直接入力していました。

username と pwd は、ユーザー名とパスワードのテキストボックスの内容が格納されている文字列変数のみです...

編集:

わかりました私は今このように見える私のコードを編集しました:

これは私のストアドプロシージャです:

これで十分ですか?私の Web アプリは sql 感染に対して安全でしょうか? それともまだ何かすべきことがありますか?

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

sql - VB.Net Update でデータベースが更新されない

これは私が実行しようとしているコードです。エラーなしで実行されますが、データベースが更新されません。

パラメータ化されていない場合は機能しますが、パラメータを追加すると動作し始めます。これが問題のコードです。

挿入が機能するため、構文が正しいことはほぼ確実です。ここに私の挿入するコードがあります。

where句が正しいことはわかっています。値をハードコーディングし、値をプッシュしてメッセージボックスと比較し、それらをデータベース内の情報と直接比較しました。

あらゆる意見をお寄せいただきありがとうございます。解決できることを願っています。

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

sql - 列名にパラメーターを使用する場合、値を選択できません

コードを実行すると"SystemNavn"、現在の行のその列の値ではなく、(テーブル内の列の名前) の結果が返されます。私は何を間違っていますか?

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

c# - パラメータ化されたクエリを介してデータベースに null 値を挿入する方法

私はdatetimeデータ型を持っています:dttm

また、データベースのフィールド タイプはdatatime

今私はこれをやっています:

これはどのように行うことができますか。