問題タブ [prepared-statement]
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.
php - mysqli_real_escape_string AND 準備済みステートメント?
十分に単純な質問でなければなりません:
mysqli のプリペアド ステートメントを使用している場合mysqli_real_escape_string()
、同様に使用する必要がありますか?
これは必要ですか、それとも良い考えですか?
ありがとう、ニコ
mysql - ストアドプロシージャ内で使用する場合、準備されたステートメントの割り当てを解除する必要がありますか?
ストアドプロシージャ内でプリペアドステートメントを使用する場合、プロシージャの最後で割り当てを解除する必要がありますか、それとも重要ではありませんか。その理由は何ですか。
説明するいくつかのコード:
つまり、DEALLOCATEステートメントが存在する必要がありますか?乾杯!
/ビクター
php - PDO Prepared 単一のクエリに複数の行を挿入します
現在、MySQL でこのタイプの SQL を使用して、複数行の値を 1 つのクエリに挿入しています。
PDO の測定値では、プリペアド ステートメントを使用すると、静的クエリよりも優れたセキュリティが得られるはずです。
そこで、プリペアドステートメントを使って「1回のクエリで複数行の値を挿入」できるかどうか教えていただきたいです。
はいの場合、どのように実装できますか?
iphone - iPhone で SQLite の準備済みステートメントを作成する方法
iPhoneでSQLiteのプリペアドステートメントを書くには? sqlite db を使用する iPhone アプリで SQL インジェクションを行うことは可能ですか?
php - PHP/PostgreSQL: 準備済みステートメントが既に存在するかどうかを確認します
準備済みステートメントを次のように作成します。
今日、同じ名前のプリペアド ステートメントを 2 回宣言すると、問題が発生しました (誤って関数を 2 回呼び出す)。
では、質問タイトルの通り、同じラベルのprepare文が既に存在するかどうかを確認し、場合によっては上書きする方法はありますか?
このエラーは私のミスによるものであり、コードの先頭で準備済みステートメントを宣言するだけで解決されることはわかっていますが、それらをより制御するための解決策があるかどうか疑問に思っています。
編集:
Milenの回答の後、準備されたステートメントがすでに使用されているかどうかを確認するのは非常に簡単です.pg_prepared_statementsテーブルのデータベースを照会するだけです:
しかし、毎回データベースにクエリを実行する必要があるため、これは良い解決策ではないと思います。
通常、準備済みステートメントはスクリプトの先頭で宣言され、再利用されますが、うまく接続されたクラスがあり、そのうちの 3 つだけを使用するときに 10 個の準備済みステートメントを宣言するのは好きではありません。
したがって、単純な PHP 配列を使用して、作成したステートメントを追跡し、isset()
それが存在するか作成する必要があるかどうかを関数で確認します。
java - プリペアドステートメントが失敗する
(SQLとJDBCを使用して)dataTableにデータを挿入する必要がある準備されたステートメントを使用しています。正常に機能するデータを削除するものを使用していますが、挿入するものはデータテーブルにデータを挿入しておらず、エラーや警告を生成しません。プリペアドステートメントがこのように失敗する原因は何ですか?プリペアドステートメントにnull値を挿入すると、これが発生する可能性がありますか?
java - プリペアドステートメントが失敗します(エラーメッセージが表示されます!)
データテーブルにデータを挿入しようとすると、このエラーが発生します
適切なデータテーブルを調べましたが、非表示または非表示のCOUNTというフィールドは存在しません。これは私が精通している必要があるSQL用語ですか?
この質問の拡張
sql - Java PreparedStatement.executeQuery(..) のステータスを取得する方法
次のようなものを使用して SQL クエリを実行しています。
ローカル データベースを使用すると問題なく動作しますが、このリモート データベースにはより多くのデータがあるため、このリモート データベースでテストする必要があります。しかし、それはリモートであるため、永遠にかかります。
ステータスを取得する方法があるかどうか、または特定の時間後にクエリされた行数があるかどうかに興味がありました。それが実際に機能していることを確認できるようにするためだけに、ピクセルを見て時間を無駄にしていませんでした. ご存知のように、「これまでに 300 行を取得し、さらに 400 行を取得しました」のようなものです。そのようなものは存在しますか?
java - 準備済みステートメントを使用してテーブル名を設定する
準備済みステートメントを使用して、データを選択するテーブル名を設定しようとしていますが、クエリを実行するとエラーが発生し続けます。
エラーとサンプル コードを以下に示します。
これを引き起こしている可能性のあるものについて何か考えはありますか?
java - 常にvarcharを使用してpreparedステートメントでnullを設定するとどうなりますか?
Javaタイプに従って値を挿入するjdbcを使用してデータを挿入するこのメソッドがあります。このようなもの:
それは問題があります(それ以外にすべてコメントされています:P)
oの値がnullの場合、 「setNull(int、int)」メソッドを使用する必要がありますが、SQLタイプを指定する必要があります。
...注:パラメーターのSQLタイプを指定する必要があります。
しかし...タイプがわからないので、常にVARCHARを使用することを検討しています(理由は)
常にvarcharを使用してpreparedステートメントでnullを設定するとどうなりますか?
私が使用しているもの:
Oracle JDBドライバの場合:
代替案は何でしょうか?