sql >> Database teknologi >  >> RDS >> Mysql

En effektiv måde at gemme et array og dets nøgler til en database

Hvis du vil oprette en SQL-forespørgsel fra dit array, kan dette hjælpe:

// 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 dette tilfælde vil forespørgslen se nogenlunde således ud:

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

Hvis du har et flerdimensionelt array (en række arrays), kan du oprette en forespørgsel som følger:

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

Og i dette tilfælde ville den resulterende forespørgsel være sådan her:

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

Nu er det eneste du skal bekymre dig om at oprette de tilsvarende kolonner til databasen.



  1. Sådan viser du alle lokaliteter i MariaDB

  2. Sådan løses ORA-29285:fil skrivefejl

  3. Gemmer ændringer efter tabelredigering i SQL Server Management Studio

  4. mysqld:Kan ikke ændre dir til data. Serveren starter ikke