問題タブ [bindvalue]

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 投票する
10 に答える
64840 参照

php - LIMIT句でbindValueメソッドを適用するにはどうすればよいですか?

これが私のコードのスナップショットです:

私は得る

SQL構文にエラーがあります。1行目の「15」、「15」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

PDOがSQLコードのLIMIT部分の変数に一重引用符を追加しているようです。調べてみたところ、関連していると思われるこのバグが見つかりました:http: //bugs.php.net/bug.php? id=44639

それは私が見ているものですか?このバグは2008年4月から開かれています。その間に私たちは何をすべきでしょうか?

SQLステートメントを送信する前に、ページネーションを作成し、データがクリーンでSQLインジェクションに対して安全であることを確認する必要があります。

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

php - PHP PDO bindValue() が機能しない

問題は次の行にあります。$stmt->bindValue(":index", $_GET['index'], PDO::PARAM_INT);

特定のパラメーターは 2 番目のパラメーターです。

上記のコードは機能しません。何も返さないため、while ループは実行されません。$_GET['index'] を 10 などの数値に置き換えると、問題なく動作し、10 行が返されます。$_GET['index'] をエコーすると数値が表示されるため、数値を渡す必要があります。bindParam も試しましたが、結果は同じです。

なぜこれが機能しないのですか?

編集:

面白い...交換$_GET['index'] with (int)$_GET['index']するとうまくいきます。

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

php - bindValueまたはBindParamがプリペアドステートメントを変更しないのはなぜですか?

テーブルユーザーに行を追加する関数を作成するために最新のphpを使用します。

addUser関数を実行すると、これはmysqlログファイルで実行されたクエリです。

ご覧のとおり、:varnameが適切な値に置き換えられていません。私は何が欠けていますか?

bindValueとbindParamの両方を試しましたが、同じ結果が得られました。

アップデート

:username変更し:passwordてに変更しても、?,?使用 bindValue(1,$username)bindValue(2,$password)ても同じ結果が得られます。実際に実行されるクエリ?,?には、実際の変数ではなく、まだ含まれています。

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

php - PDO-> bindParam、PDO-> bindValue、PDO-> closeCursor

これまで使用してきPDO->bindParamましたが、マニュアルを読んでいるうちに、値でパスするのがわかりPDO->bindValueますが、参照でパスするのはこれだけですか?PDO->bindValuePDO->bindParam

再び私が見つけたマニュアルを読んでいる間:PDO->closeCursor私はそれをマークされた場所に置くべきですか?オプション/自動的に呼び出されますか?特定のドライバーだけがそれを必要としているようです。それを必要としない/サポートしていないドライバーでそれを呼び出すと、エラーが発生しますか?MySQLはどうですか?

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

php - PDOの%でどのようにbindValue?

これは私が持っているものです。

bindValue を実行しようとするとエラーが発生し、それを準備済みステートメントで使用します ( %:queryString% )

どうすればこれを解決できますか?

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

sql - bindvalue と % を使用してステートメントを準備するにはどうすればよいですか?

はい、以前は次のように見えた変数で bindvalues を使用しようとすると問題が発生します。

次のようになります。

しかし、それは機能しません。これも試しました:

そして、いくつかの構文エラーが発生しました..

これに対する正しい解決策は何ですか?bindValue(:firstname, $firstname%) に % を追加することも考えましたが、他の場所でも :firstname を使用する必要があります。

助けてくれてありがとう

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

php - bindValueはエスケープしません

php.netでコメントを読みました:

引用符をエスケープしますがbindValue()、「%」と「_」はエスケープしません。したがって、を使用するときは注意してLIKEください。自分でパラメータをエスケープしないと、%%%でいっぱいの悪意のあるパラメータがデータベース全体をダンプする可能性があります。PDOは、それを処理するための他のエスケープメソッドを提供していません。

それで、それは本当に%と_をエスケープしませんか?これに対する最善の解決策は何でしょうか?

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

php - どのように主キーに値をバインドしますか?

主キーに bindValue を使用することをお勧めしますか?

主キーの値はデータベースの結果から取得されます。

注: GET/POST クエリとは連動しません。

例えば:

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

php - PDOStatement :: bindValue()で変数タイプをどのように定義しますか?

PDOStatement :: bindValue()メソッドは、バインドされた変数のタイプを指定する方法を提供します。

PDOStatement :: bindValue($ parameter、$ value [、$ data_type = PDO :: PARAM_STR ])

データ型を指定する目的は何ですか?デフォルト(PARAM_STR)のままにすると、データベースは最終的に値を使用する前に適切な型にキャストしますか?

たとえば、INTEGERフィールドに対して次のクエリがある場合:

そして、PHPで整数をバインドすると、PDOはデフォルトでそれを文字列としてバインドします。これは次のように相当します。

SQLデータベース(少なくともMySQL、他のRDBMSでどのように機能するかはわかりません)は、文字列を使用する前に整数に変換する方法を知っているため、これは問題なく機能します。

バインドされた型付きパラメーターと文字列に違いが生じるユースケースは何ですか?