PHP,PDO,的foreach

时间:2012-02-28 08:11:15

标签: foreach pdo

代码:

public static function selectlogin($sq)
{       
    $db_handler = self::handler();

    $res = $db_handler->query($sq);


    foreach ($res as $row)
    {
        $_SESSION['admin_id'] = $row['id'];
    }

    return $_SESSION['admin_id'];
}

错误消息

Warning: Invalid argument supplied for foreach()

有人可以解决这个问题吗?

4 个答案:

答案 0 :(得分:0)

我*不知道您正在使用的,但在foreach之前,您必须使用相同类型的mysql_fetch_array()来将SQL结果资源转换为您可以工作的数组。出错的原因是 $ res 包含结果资源,而不是结果本身。

答案 1 :(得分:0)

是的! ...你的$ res是一个假值。 NULL或FALSE。

if ($res)
{
  for ($res as $row)
  {
    $_SESSION['admin_id'] = $row['id'];
  }
  return $_SESSION['admin_id'];
}

答案 2 :(得分:0)

你可以试试吗

if (is_array($res))
{
     foreach ($res as $row)
    {
     // store
    }
}

我们检查数组是否为空。这种方式更清洁。

答案 3 :(得分:0)

  

PDO :: query()返回PDOStatement对象,或者失败时返回FALSE

var_dump($res);输出是什么?