Mysql_Fetch_Assoc PHP 1-liner her () ()

3 Cevap php

Mysql sonuç kümesi döngü için 1-liner oluşturmak için çalışıyoruz.

Örnek:

$sql = "SELECT uid, role FROM usr WHERE uid = '$this->uid'";
$r = db::q($sql);
if($r->rows()) {
  $q = mysql_fetch_assoc($r->result);
  while(list($k, $v) = each($q)) { // would like to omit line above and consolidate here
    $_SESSION['usr'][$k] = $this->$k = $v;
  }
}

Sorun şöyle ki konsolide ederken döngü:

while(list($k, $v) = each(mysql_fetch_assoc($r->result))

bir hata döndürür la each() Tabii bu olsa, nesne ya da dizi almıyor. Ben sorunun bir döküm sorun olduğunu düşünüyorum, ama bunu yapabileceğiniz gibi görünmüyor:

each( (array) mysql_fetch_assoc($r->result))

Herhangi bir fikir? Ben tersely mümkün olduğunca kod istiyorum, ve "$q = mysql_fetch_assoc($r->result)" zaten her yerde, bana gelmez rahatsız edecektir sahip.

Haberdar ...

Teşekkürler!

3 Cevap

$_SESSION['usr'] = mysql_fetch_assoc($r->result);

veya ($ _SESSION ['usr'] Zaten tutmak istediğiniz diğer tuşları ile bazı unsurları içeriyorsa)

$_SESSION['usr'] = array_merge($_SESSION['usr'], mysql_fetch_assoc($r->result));

Kendinize bir iyilik yapın ve use PDO:

$query->fetchAll();

MySQLi da benzer bir yöntem / işlevi vardır.

Sen while durumun mysql_fetch_assoc çağrı parçası yapmak olabilir:

while (($q = mysql_fetch_assoc($r->result)) && list($k, $v) = each($q)) {
    $_SESSION['usr'][$k] = $this->$k = $v;
}