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

  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • grickle

    grickle

    22 AĞUSTOS 2006
  • Within Temptation

    Within Tempt

    18 EYLÜL 2006