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

Wstawianie wielowymiarowej tablicy php do bazy danych mysql

Poniższy kod będzie działał, ale zakłada się, że długość wszystkich zagnieżdżonych tablic jest taka sama, innymi słowy, że każda zagnieżdżona tablica zawiera wartości wszystkich atrybutów zdefiniowanych w pierwszej zagnieżdżonej tablicy.

$array = array(
    array('name', 'age', 'gender' ),
    array('Ian', 24, 'male'),
    array('Janice', 21, 'female')
);

$fields = implode(', ', array_shift($array));

$values = array();
foreach ($array as $rowValues) {
    foreach ($rowValues as $key => $rowValue) {
         $rowValues[$key] = mysql_real_escape_string($rowValues[$key]);
    }

    $values[] = "(" . implode(', ', $rowValues) . ")";
}

$query = "INSERT INTO table_name ($fields) VALUES (" . implode (', ', $values) . ")";

To rozwiązanie będzie działać z dowolną liczbą atrybutów zdefiniowanych w pierwszej tablicy zagnieżdżonej, o ile wszystkie inne tablice zagnieżdżone mają tę samą długość. Dla tablicy powyżej dane wyjściowe będą wyglądały następująco:

INSERT INTO table_name (name, age, gender) VALUES (Ian, 24, male), (Janice, 21, female)

Aby zobaczyć demonstrację, zobacz http://codepad.org/7SG7lHaH , ale zauważ, że usunąłem wywołanie mysql_real_escape_string() na codepad.org, ponieważ nie pozwalają na tę funkcję. We własnym kodzie powinieneś go użyć.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Wyszukiwanie wielu danych wejściowych

  2. Jak połączyć się z MySQL za pomocą Microsoft .NET

  3. czas wykonania mysql

  4. Jak przechowywać tablicę w mysql?

  5. Jak dodawać adnotacje do pola autoinkrementacji MYSQL za pomocą adnotacji JPA?