PDO中的非法字符串偏移量

时间:2013-03-04 22:02:38

标签: pdo foreach

PHP查询:

<?php

    $query = $db->prepare('SELECT * FROM Locations WHERE user_id = :id LIMIT 0, 5');
    $query->bindParam(":id",$id);
    $result = $query->execute();

    $rows = $query->fetch();

    foreach ($rows as $row) {
        echo $row["timestamp"]; "<br />";
    }

?>

应该打印的两行(时间戳):

Database

实际打印的内容: 1188((22

控制台内的错误: PHP警告:第73行/Sites/pages/user_account.php中的非法字符串偏移'timestamp' - 第73行是forloop内的echo $ row ...

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:8)

您正在使用fetch,而不是fetchAll检索单行:

$rows = $query->fetchAll();

答案 1 :(得分:-1)

您有两行(user_id = 8)

$rows = $query->fetchAll();

适用于所有行

foreach ($rows as $row) {
  echo $row . "<br />";
}

对于1行,所有列

while ($row = $rows) {

  foreach ($row as $column) {
    echo $column . "<br />";
  }

}