查询只返回一行

时间:2014-06-07 14:58:36

标签: php mysql sql

我在PHP中运行这个MySQL查询:

SELECT * FROM settings

这是设置表:

id ------- name ------- value
_____________________________
 1 --------- one --------- 1  
 2 --------- two --------- 2

出于某种原因,当我运行查询时,我只得到第一个结果(即使在运行foreach循环时)。
我已经浏览了一下,可以看到解决方法是运行while循环。这对我来说看起来有点反作用。

我的问题是,为什么会发生这种情况,我如何修复它作为标准foreach循环运行?

修改
PHP代码:

$query = @mysql_query("SELECT * FROM settings");
$result = mysql_fetch_assoc($query);
print_r($result);

1 个答案:

答案 0 :(得分:1)

你必须通过循环遍历结果集:

$con=mysqli_connect("localhost","username","password","database");
$query = "SELECT * FROM settings";
$result = mysqli_query($con, $query);
echo "<pre>"; 
while ($row = mysqli_fetch_assoc($result)) {
    print_r($row);
}

或者如果您想使用PDO(即使用foreach):

try {
    $db = new PDO("mysql:dbname=databasename;host=localhost", "username", "password" );
    $sql = "SELECT * FROM settings";

    foreach ($db->query($sql) as $row) {
        print_r($row);
    }
} catch(PDOException $e) {
    echo $e->getMessage();
}