Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy możliwe jest wejście z DWÓCH zapętlonych pól tekstowych?

Musisz uzyskać indeksy, aby uzyskać dostęp do wartości w drugiej tablicy:

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

To zadziała, ale prawdopodobnie nie powinieneś tego robić w ten sposób, ponieważ pozostawia cię otwartą na wstrzyknięcia SQL . Lepszym sposobem na zrobienie tego byłoby oczyszczenie danych wejściowych (np.: mysql_reaL_escape_string lub jego odpowiednik w mysqli)

Najlepszym sposobem byłoby używanie przygotowanych oświadczeń :

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Niezaznaczone pole wyboru zwracające wartość null

  2. Czy to prawda, że ​​liczba kolumn nie wpływa na wydajność bazy danych, a liczba wierszy tak?

  3. Boolean vs tinyint(1) dla wartości logicznych w MySQL

  4. Wypełnianie wybranego pola wejściowego wartością z mysql

  5. MySQL 8.0 - Klient nie obsługuje protokołu uwierzytelniania żądanego przez serwer; rozważ aktualizację klienta MySQL