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

Zapisać tablicę PHP do MySQL?

Nie ma dobra sposób na przechowywanie tablicy w jednym polu.

Musisz przeanalizować swoje dane relacyjne i wprowadzić odpowiednie zmiany w swoim schemacie. Zobacz przykład poniżej, aby zapoznać się z tym podejściem.

Jeśli musisz zapisz tablicę w jednym polu, a następnie serialize() i unserialize() funkcje załatwią sprawę. Ale nie możesz wykonywać zapytań na rzeczywistej treści.

Alternatywą dla funkcji serializacji jest również json_encode() i json_decode() .

Rozważ następującą tablicę

$a = array(
    1 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
    2 => array(
        'a' => 1,
        'b' => 2,
        'c' => 3
    ),
);

Aby zapisać go w bazie danych, musisz utworzyć taką tabelę

$c = mysql_connect($server, $username, $password);
mysql_select_db('test');
$r = mysql_query(
    'DROP TABLE IF EXISTS test');
$r = mysql_query(
    'CREATE TABLE test (
      id INTEGER UNSIGNED NOT NULL,
      a INTEGER UNSIGNED NOT NULL,
      b INTEGER UNSIGNED NOT NULL,
      c INTEGER UNSIGNED NOT NULL,
      PRIMARY KEY (id)
    )');

Aby pracować z rekordami, możesz wykonywać zapytania takie jak te (tak, to jest przykład, uważaj!)

function getTest() {
    $ret = array();
    $c = connect();
    $query = 'SELECT * FROM test';
    $r = mysql_query($query,$c);
    while ($o = mysql_fetch_array($r,MYSQL_ASSOC)) {
        $ret[array_shift($o)] = $o;
    }
    mysql_close($c);
    return $ret;
}
function putTest($t) {
    $c = connect();
    foreach ($t as $k => $v) {
        $query = "INSERT INTO test (id,".
                implode(',',array_keys($v)).
                ") VALUES ($k,".
                implode(',',$v).
            ")";
        $r = mysql_query($query,$c);
    }
    mysql_close($c);
}

putTest($a);
$b = getTest();

connect() funkcja zwraca zasób połączenia mysql

function connect() {
    $c = mysql_connect($server, $username, $password);
    mysql_select_db('test');
    return $c;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Migracja online z MySQL 5.6 bez GTID do MySQL 5.7 z GTID

  2. Grupa MySQL firmy SUM

  3. Darmowe metody naprawy uszkodzonej bazy danych MySQL

  4. Użyj relacyjnych baz danych MySQL na Ubuntu 9.04 (Jaunty)

  5. Pomoc dotycząca aktualizacji MySQL