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

  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • martin shervington

    martin sherv

    7 EKİM 2011
  • Sali Kaceli

    Sali Kaceli

    24 ŞUBAT 2009