我在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);
答案 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();
}