PHP PDO Fetch无法正常工作?

时间:2015-07-14 09:29:59

标签: php mysql pdo

我可以成功选择一个对象,但是我无法使用以下代码从数据库中获取所有行,任何人都可以看到任何明显的错误吗?

    $sql2 = "SELECT ID, Latitude, Longitude, Name FROM Countries";
    $stmt2 = $pdo->prepare($sql2);
    $stmt2->execute();

    while ($row = $stmt2->fetch(PDO::FETCH_ASSOC)) {
        echo $countryID = $row->ID;
        echo $countryName= $row->Name;
        echo $longitude2 = $row->Longitude;
        echo $latitude2 = $row->Latitude;
    }

2 个答案:

答案 0 :(得分:1)

参数PDO::FETCH_ASSOC告诉PDO将结果作为关联数组返回。所以你可以获取数组而不是对象

 while ($row = $stmt2->fetch(PDO::FETCH_ASSOC)) {
        echo $countryID = $row['ID'];
        echo $countryName= $row['Name'];
         //Rest of the code

    }

答案 1 :(得分:1)

你必须意识到PDO::FETCH常量是故意的。如果您想使用对象表示法,则必须指定PDO::FETCH_OBJ而不是...ASSOC

无论如何,PDO::FETCH_LAZY应该是最首选的方式,因为它会让你使用任何符号:

while ($row = $stmt2->fetch(PDO::FETCH_LAZY)) {
    echo $row->ID;    // all
    echo $row['ID'];  // three
    echo $row[0];     // works
}

比任何其他方法的内存开销更少。完全没有内存开销。