Php 跳过第 MySQL 行。不是常见的 double fetch() 错误
Php skips first MySQL row. Not the common double fetch() mistake
大家好
我提出以下问题:
我的 php 代码在打印到屏幕上时跳过了第一个 mysql 行。我已经看到通过在其他问题的 while() 循环之外删除一个双 fetch() 方法解决了这个问题,但我没有看到这里发生了什么,那还能是什么呢?我迷路了。
这是代码:
<?php
$servername = "localhost";
$username = "root";
$password = "standup";
$database = "sakila";
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully<br><br>";
$query = "select * from actor;";
$queryResult = $conn->query($query);
while($queryRow = $queryResult->fetch_row()){
echo "$queryRow[1]<br>";
}
$conn->close();
?>
这是原始数据库:
Mysql
这是浏览器中的结果
Browser
@rtfm 在评论中提供的答案
解决方案 1
将 order by
添加到查询中,在这种情况下 $query = "select * from actor order by actor_id;";
解决了跳过第一行的问题。
解决方案 2
将 limit
添加到查询中,在这种情况下 $query = "select * from actor limit 100;";
也解决了跳过第一行的问题。
大家好
我提出以下问题: 我的 php 代码在打印到屏幕上时跳过了第一个 mysql 行。我已经看到通过在其他问题的 while() 循环之外删除一个双 fetch() 方法解决了这个问题,但我没有看到这里发生了什么,那还能是什么呢?我迷路了。
这是代码:
<?php
$servername = "localhost";
$username = "root";
$password = "standup";
$database = "sakila";
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully<br><br>";
$query = "select * from actor;";
$queryResult = $conn->query($query);
while($queryRow = $queryResult->fetch_row()){
echo "$queryRow[1]<br>";
}
$conn->close();
?>
这是原始数据库:
Mysql
这是浏览器中的结果
Browser
@rtfm 在评论中提供的答案
解决方案 1
将 order by
添加到查询中,在这种情况下 $query = "select * from actor order by actor_id;";
解决了跳过第一行的问题。
解决方案 2
将 limit
添加到查询中,在这种情况下 $query = "select * from actor limit 100;";
也解决了跳过第一行的问题。