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

MySQL PDO IN()のパラメータをバインドする方法

    私はそれを理解しました:

    $ids = '1,2,3';
    

    $ ids文字列を配列に分解します:

    $ids_array = explode(',', $ids);
    

    これにより:

    $ids_array[] = 1;
    $ids_array[] = 2;
    $ids_array[] = 3;
    

    疑問符のコンマ区切りの文字列を作成します。疑問符の数は配列値の数と一致します

    $in  = str_repeat('?,', count($ids_array) - 1) . '?';
    

    これにより、次のような文字列が生成されます。

    ?,?,?
    

    その文字列をSQLに入れます

    $q = "SELECT *
        FROM table
        WHERE id IN($in) ";
    
    
    $stmt = $this->db->prepare($q);
    

    配列をパラメータとして渡して、クエリを実行します

    $stmt->execute($ids_array);
    



    1. 2つの配列を比較し、一致しない要素のみをpostgresで選択する方法

    2. C#のパラメーターを使用してストアドプロシージャを呼び出す

    3. 結果を取得して.csv形式で配置するC#SQLServer

    4. MySQLWorkbenchがクエリ結果を表示しない