Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкване на многоизмерен php масив в mysql база данни

Следният код ще работи, но предполага, че дължината на всички вложени масиви е една и съща, с други думи, че всеки вложен масив съдържа стойности за всички атрибути, дефинирани в първия вложен масив.

$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) . ")";

Това решение ще работи с произволен брой атрибути, дефинирани в първия вложен масив, стига всички други вложени масиви да имат същата дължина. За масива по-горе изходът ще бъде:

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

За демонстрация вижте http://codepad.org/7SG7lHaH , но имайте предвид, че премахнах извикването на mysql_real_escape_string() на codepad.org, защото те не позволяват функцията. В собствения си код трябва да го използвате.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql йерархия самоприсъединяване, извличане на всички подкатегории

  2. Има ли разлика между тези две заявки?

  3. Как да групирате по седмица в MySQL?

  4. Получаване на всички потребители с изключение на администраторите във връзка много към много

  5. MYSQL деклариране на променливи