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

2つのループするTextFieldのForeachは可能ですか?

    他の配列の値にアクセスするには、インデックスを取得する必要があります:

    foreach($_POST['experiences'] as $idx => $experience) {
        $sql = "INSERT INTO experiences (number, experience, years)
                VALUES ({$idx}, {$experience}, {$_POST['years'][$idx]}");
        // execute query, etc
    }
    

    これは機能しますが、 SQLインジェクション<を開いたままにするため、この方法で行うべきではありません。 / a> 。これを行うためのより良い方法は、入力をサニタイズすることです(例: mysql_reaL_escape_string またはそれに相当するmysqli)

    最善の方法は、プリペアドステートメントを使用する ことです。 :

    $stmt = $dbh->prepare("INSERT INTO experiences (number, experience, years) 
                           VALUES (?, ?, ?)");
    
    foreach($_POST['experiences'] as $idx => $experience) {
        // pass values and execute
        $stmt->execute(array($idx, $experience, $_POST['years'][$idx]));
    }
    



    1. 複数のタグに一致するアイテムを選択する

    2. MYSQLエラー2049(HY000):古い(4.1.1より前の)認証プロトコル参照を使用した接続が使用されました(クライアントオプション'secure_auth'が有効)

    3. GrantLoggingトリガーを使用したORA-6502

    4. #1064-SQL構文にエラーがあります。 MySQLサーバーのバージョンに対応するマニュアルを確認してください