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

  • CrazyMan

    CrazyMan

    14 Mayıs 2008
  • Google Россия

    Google Ро

    9 Temmuz 2007
  • Truc Minh

    Truc Minh

    23 Ocak 2011