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

SQLIN句用のPHP配列のフォーマット

    もっと良い方法があります

    コメントで、CodeIgniterを使用していると述べています。非常に複雑なものを作成しているのでない限り、 where_in 組み込み。

    それでもうまくいかない場合は、古き良き escape

    さて、あなたはほとんどの人があなたがアイテムを引用する必要があると言ってあなたにこれを与えていると言っています:

    function createInClause($arr)
    {
        return '\'' . implode( '\', \'', $arr ) . '\'';
    }
    

    しかし、疑わしい入力の可能性がある場合は、それだけでは十分ではありません( '); DROP TABLE STUDENTS; -- 。これを防ぐには、 SQLインジェクション: を確認する必要があります。

    function createInClause($arr)
    {
        $tmp = array();
        foreach($arr as $item)
        {
            // this line makes sure you don't risk a sql injection attack
            // $connection is your current connection
            $tmp[] = mysqli_escape_string($connection, $item);
        }
        return '\'' . implode( '\', \'', $tmp ) . '\'';
    }
    


    1. PostgreSQLのユーザー定義変数

    2. SQLServerのデッドロックの構造とそれらを回避するための最良の方法

    3. DATEDIFF_BIG()SQLServerの例

    4. SQLServerクエリのUNIONALLとOR条件