尝试创建一个 1-liner 来循环遍历 mysql 结果集。
例子:
$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;
}
}
问题是像这样合并 while 循环:
while(list($k, $v) = each(mysql_fetch_assoc($r->result))
返回一个错误,如 each()
没有得到对象或数组,即使它当然是。我认为问题是类型转换问题,但您似乎做不到:
each( (array) mysql_fetch_assoc($r->result))
有什么想法吗?我喜欢尽可能简洁地编写代码,到处都有“$q = mysql_fetch_assoc($r->result)
”会让我很烦,已经这样了。
保持发布...
谢谢!
最佳答案
关于PHP 1-liner each() 和 mysql_fetch_assoc(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844245/