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

Ефективен начин за запазване на масив и неговите ключове в база данни

Ако искате да създадете SQL заявка от вашия масив, това може да помогне:

// Sample array
$array = array(
             'key1' => 'value1',
             'key2' => 'value2'
             ...
             'key10' => 'value10'
         );

// Get and escape the keys
$keys = array_map('mysql_real_escape_string', array_keys($array));
// Escape the values
$array = array_map('mysql_real_escape_string', $array);
// Build query
$query = "INSERT INTO table(`".implode('`, `', $keys)."`) VALUES('".implode("', '", $array)."')";

mysql_query($query);

В този случай заявката ще изглежда така:

INSERT INTO
    table(`key1`, `key2` ... `key10`)
VALUES
    ('value1', 'value2' ... 'value10')

Ако имате многоизмерен масив (масив от масиви), можете да създадете заявка, както следва:

// Sample multidimensional array
$array = array(
             array('key1' => 'value1', 'key2' => 'value2'),
             array('key1' => 'value3', 'key2' => 'value4'),
             array('key1' => 'value5', 'key2' => 'value6')
         );

// Get and escape the keys
$keys = array_map('mysql_real_escape_string', array_keys(current($array)));
// Array to store values for the query
$values = array();
// Loop every row and insert into $values array
foreach($array as $row) {
    // Escape all items
    array_map('mysql_real_escape_string', $row);
    $values[] = "('".implode("', '", $row)."')";
}

$query = "INSERT INTO table(`".implode('`, `', $keys)."`) VALUES ".implode(', ', $values);

mysql_query($query);

И в този случай, получената заявка ще бъде нещо подобно:

INSERT INTO
    table(`key1`, `key2`)
VALUES
    ('value1', 'value2'),
    ('value3', 'value4'),
    ('value5', 'value6')

Сега единственото нещо, за което трябва да се притеснявате, е да създадете съответните колони в базата данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DATETIME VS INT за съхранение на времето?

  2. Как да се показват филтрирани данни в JFreeChart

  3. Как работят ПЪЛНИ ТЕКСТОВИ ИНДЕКСИТЕ на множество колони?

  4. mysql подреждане на заявката за присъединяване по две колони

  5. Как да актуализирате MySql DB с помощта на Flex