sql >> Databáze >  >> RDS >> Mysql

Foreach ze DVOU opakování TextFields, je to možné?

Pro přístup k hodnotám v druhém poli musíte získat indexy:

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

Bude to fungovat, ale pravděpodobně byste to neměli dělat tímto způsobem, protože to nechává otevřené pro injekce SQL . Lepší způsob, jak toho dosáhnout, by bylo dezinfikovat vaše vstupy (např.: mysql_reaL_escape_string nebo jeho ekvivalent mysqli)

Nejlepší způsob, jak jít, by bylo pomocí připravených prohlášení :

$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. Přeskočit vložení na duplicitní záznam v mysql

  2. CurrentUtcDateTime neexistuje - Entity Framework a MySql

  3. Další chyba UnicodeEncodeError při použití metody pandas to_sql s MySQL

  4. Získejte název zdrojové tabulky řádku při dotazu na nadřazený řádek, od kterého dědí