問題タブ [bindparam]
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 - bind_param()は何をしますか?
bind_paramが何をするのかまだ少しわかりません。誰かが私に意味についての例を教えてもらえますか?
php - ORDER BYにbind_paramを使用することは可能ですか?
私の頭の中には、次のようなクエリがあります。
ソート変数を設定せずにこのコードブロックを実行すると?
、ORDER BY句での使用に関連するエラーなしで実行され、結果セットが「ORDERBYid」の結果セットのように表示されます。
並べ替え変数を「priceASC」のようなものに設定しても、「ORDERBYpriceASC」ではなく「ORDERBYid」のように見える結果セットが得られます。
ここで、コードを変更して次のように実行すると、次のようになります。
正しく実行され、phpMyAdminのクエリと同じ結果セットが得られます。
ここで正確に何が起こっているのか、そしてなぜbind_paramを使用して最初に意図したようにクエリが実行されないのか。
私の考えでは、このような使用に関してエラーが発生しないため、機能するはずです...しかし、実際には、ORDERBY句では機能しないようです。bind_paramの実行中にsort変数を変換していないようです。
編集:
興味のある方へ-
php - bind_paramの正しい使用?
私はアプリケーションのログイン(学校の仕事)に取り組んでおり、mysqliクラスを適切な方法で使用する方法を学んでいます。以下は、ユーザーが入力したユーザー名とパスワードが正しい(つまり、データベースに存在する)かどうかを確認するために使用される、私のアプリケーションの2つの方法です。
私の質問は、これがbind_paramを使用する正しい方法であるかどうか、またはこの目的でそれを使用することは「やり過ぎ」である可能性があるかどうかです。それは別の方法で行われる可能性がありますか?
LoginModel.phpから
Database.phpから
php - PDO bindparam および bindvalue。違いはどれですか?
PHP PDO のマニュアルを読み、この投稿を見ました: PDO PARAM_STR and length
その投稿を読んだ後、DB に挿入するときに長さを指定する必要はなく、出力するときに指定する必要があることを理解しました。
私の質問は、出力の長さを指定したくない場合、代わりに bindvalue() を使用できますか? bindparam と bindvalue をいつ使用するのが最適かについて、誰かが良いアドバイスをくれるでしょうか?
よろしくお願いします。
php - bindValue() と bindParam() の混乱?
私はこれら2つの機能Bindvalue()
を混同していますBindParam()
%
私は php.net でそれがエスケープしないことを読んだ_
ので、使用するときは注意してLIKE
ください。BindValue()
したがって、LIKEクエリを使用している場合は使用されないと思います。LIKE
クエリを使用する場合に使用BindParam()
されます。私が知っているように、BindParam はこれら%
と_
.BindValue()
SQL インジェクションに対する保護は提供しません。これについてはよくわかりませんが、本当ですか?
友人は、私がこれらの 3 点で言及したことが正しいか間違っているかを教えてくれます。私はPDOの初心者なので、わかりやすく説明してください..
php - 文字列の配列の mysqli bind_param
WHERE IN(?)
値の配列を句にバインドする必要があります。どうやってやるの?
これは機能します:
しかし、これは次のようなbind_paramで作業することはできません:
私は何を間違っていますか?
も試しましcall_user_func_array
たが、正しい構文を取得できないようです。
php - bindParam (mysqli) で $_POST 値を直接使用すると、セキュリティ上の問題が発生しますか?
isert ステートメントで直接使用される $_POST 値の使用について読んでおり、これがトラブルの誘因であることを理解しています。私が読んだ投稿で明確でないのは、フォームが7つのアイテムをmysqli挿入スクリプトに送信していて、投稿された値を次のように使用しているとします。
それはそれを行う正しい方法でしょうか?または、投稿された値を最初に新しい変数に保存し、バインド中にその変数を使用する必要がありますか? - このような :
OO mysqli プリペアド ステートメント ヘルプ プリーズの投稿を見ましたが、答えは上記のコードのようですが、最初のコードのように実行するとセキュリティの問題が発生するかどうかを知りたいです...
php - 複数のパラメーターを mysqli クエリにバインドする
現在、次の構造を使用して、複数のパラメーターを mysqli クエリにバインドすることに対処する必要があります。
以下のコードを使用して疑問符の数を計算し、それをクエリに挿入します。
私の質問は、動的に必要なだけ多くの入力をクエリに処理する方法が必要です。ハードコーディングは、bind_param()
これを処理するための本当に悪い方法のようです。
PHPバージョン5.4.10を使用しています
php - bind_param は何を達成しますか?
SQL インジェクションの回避について学んでいますが、少し混乱しています。
bind_param を使用する場合、目的がわかりません。マニュアルページで、次の例を見つけました。
さて、これら 4 つの変数がユーザー入力であると仮定すると、これがどのように SQL インジェクションを防ぐのか理解できません。私の理解では、彼らはそこに好きなものを入力することができます。
そこの説明も見つかりません'sssd'
。それは何をするためのものか?それがそれをより安全にするものですか?
最後の質問:mysqli_real_escape_string
非推奨の別の質問を読みましたが、マニュアルには記載されていません。それはどのように非推奨ですか?何らかの理由で特殊文字をエスケープできなくなりましたか?
注: この質問は bind_param が何をするかを説明しましたが、なぜそれがより安全であるか、より保護されているかはまだわかりません。 Bind_param の説明