SORU
30 Aralık 2009, ÇARŞAMBA


Dizi PHP MySQL Kaydet

Tek bir mysql alan veri dizisi kaydetmek için iyi bir yolu nedir?

Ayrıca mysql tabloda bu dizi için sorgu sonra, tekrar dizi haline almak için iyi bir yolu nedir?

Seri hale getirmek ve cevap unserialize?

CEVAP
30 Aralık 2009, ÇARŞAMBA


Yokiyiyolu, tek bir alana bir dizi depolamak için.

İlişkisel veri inceleyin ve şemaya uygun değişiklikleri yapmanız gerekir. Örnekte, bu yaklaşım için bir başvuru için bkz.

Eğergerekirserialize() unserialize() fonksiyonları hile yapacak tek bir alana dizi kaydedin. Ancak gerçek içeriği üzerinde sorgulama yapmak.

Seri hale getirme işlevi için bir alternatif olarak da json_encode() json_decode() var.

Şu dizi düşünün

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

Onu kurtarmak için veritabanında böyle bir tablo oluşturmanız gerekir

$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)
    )');

Bu gibi sorgular gerçekleştirebilirsiniz kayıtları (ve evet bu bir örnektir, dikkat!) ile çalışmak

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() fonksiyon mysql bağlantı kaynak döner

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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fubar Protocol

    Fubar Protoc

    21 AĞUSTOS 2010
  • Slave Boy Films - Fandom from a Galaxy Far Far Away

    Slave Boy Fi

    12 HAZİRAN 2009
  • Videogamerz | Call of Duty

    Videogamerz

    5 NİSAN 2012