sql >> データベース >  >> RDS >> Mysql

INステートメントに使用される変数/文字列のPHPPDObindParam ...?

    コメントでdecezeが言ったことは正しいです。これが私が以前にこれを行った方法です。

    基本的に、 INを作成します 配列値をループし、バインドされた名前を追加することにより、SQL文字列の一部。

    $allow = array( 'red', 'blue' );
    
    $sql = sprintf(
        "Select * from colors where type in ( %s )",
        implode(
            ',',
            array_map(
                function($v) {
                    static $x=0;
                    return ':allow_'.$x++;
                },
                $allow
            )
        )
    );
    

    これにより、(:allow_0、:allow_1)と入力した色からSelect *

    次に、 $ allowをループします 配列し、bindValueを使用して各変数をバインドします。

    foreach( $allow as $k => $v ){
        $stmnt->bindValue( 'allow_'.$k, $v );
    }
    

    同様の例を示した質問にリンクされたdecezeを実現する前に、これを追加しました。これは、?s

    ではなく、名前付きのバインドされた変数を使用して行う方法を示しているため、ここに残しておきます。

    1. PHPフォームのチェックボックスと未定義のインデックス

    2. 存在しないキーが見つかった場合、新しい行を挿入せずに、既知のキーで複数の行を更新します

    3. 3つの簡単なSQLServerパフォーマンスの勝利

    4. クエリを送信するときに何をエスケープする必要がありますか?