sql >> Databasteknik >  >> RDS >> Mysql

Ett effektivt sätt att spara en Array och dess nycklar till en databas

Om du vill skapa en SQL-fråga från din array kan det här hjälpa:

// 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);

I det här fallet skulle frågan se ut ungefär så här:

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

Om du har en flerdimensionell array (en array av arrays) kan du skapa en fråga enligt följande:

// 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);

Och i det här fallet skulle den resulterande frågan vara ungefär så här:

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

Det enda du behöver oroa dig för är att skapa motsvarande kolumner till databasen.



  1. mySql kopiera rader till samma tabell med nyckelvärdet ändrat (skriver inte över befintligt)

  2. Hur man visar de aktuella Dot Command-inställningarna i SQLite

  3. Hur YEARWEEK() fungerar i MariaDB

  4. Hur kan jag summera kolumner över flera tabeller i MySQL?