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

複数のINSERTとPDOプリペアドステートメントのセキュリティの維持

    まず、一定の価値であることを保証します 完全に安全です。したがって、コード内のバインドされたパラメーターの数を大幅に減らすことができます

    INSERT INTO inbox(folder_id, sender_id, sender_type, receiver_id, 
       receiver_type, title, message_body, dt, flag, spam) 
       VALUES (0, 0, 'x', ?, ?, ?, ?, NOW(), 'n', '')");
    

    また、2つのフィールドdateを組み合わせました およびtime 1つのdtに 、それらを分離する理由はありませんが、より短いコードを使用できるようにすることができます。

    これで、次のステップに進むことができます- INSERT .. SELECT アプローチ

    INSERT INTO inbox(folder_id, sender_id, sender_type, receiver_id, 
       receiver_type, title, message_body, dt, flag, spam) 
       SELECT 0, 0, 'x', id, ?, ?, ?, NOW(), 'n', ''
       FROM mya_users ORDER by artist_real_address ASC
    

    データを残りの3つの変数のみにバインドします!




    1. SQLiteテーブル制約が一意でONCONFLICTREPLACEの使用法

    2. Oracleでフィールドの値が変更されたときに行番号をインクリメントする

    3. SQLite VACUUM

    4. OracleでのDapperの使用