PHP 1-liner each() 和 mysql_fetch_assoc()

标签 php mysql

尝试创建一个 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)”会让我很烦,已经这样了。

保持发布...

谢谢!

最佳答案

帮自己一个忙 use PDO :

$query->fetchAll();

MySQLi也有类似的方法/功能。

关于PHP 1-liner each() 和 mysql_fetch_assoc(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844245/

相关文章:

php - 是头 ('Content-Type:text/plain' );有必要吗?

php - 获取数据错误关系表

javascript - 如何将值传递给 php 中同一页面中的查询?

mysql - 如何获取两个日期之间的所有日期?

mysql - SQL - 查找键等于值的所有 "Relationship IDs",然后选择包含这些 "Relationship IDs"的所有记录

php - RabbitMQ - 将数据发送给另一个消费者

php - 如何将仅存在于 PHP 中的 JSON 对象中的值插入到表中

c++ - MySQL 服务器端超时

java - Hibernate - 删除期间表不存在

mysql - 如何为这种多对多关系建立关系数据库表?