我正在学习连接到我的数据库并创建/读取/更新/删除不同表中的信息。目前我使用的是PDO而不是mysqli,因为我可以更轻松地准备好语句。我现在想做的事实上并没有任何价值,我只是想知道为什么会发生这种情况。这是我的代码:
//pdo connection
try {
$conn = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_user, $db_pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//READ FROM DB
$stmt = $conn->prepare('SELECT * FROM objects where ID = :id');
$stmt->execute(array(':id'=>8));
print_r($stmt->fetch(PDO::FETCH_OBJ));
while($row = $stmt->fetch(PDO::FETCH_OBJ)) {
$results[] = $row;
}
print_r($results);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
现在,发生的事情是,如果我按此顺序print_r
,那么只有第一个print_r
可以正常工作,反之亦然(假设我也使用{{1}移动while循环为什么我只被允许这样做一次,取决于第一个否定第二个?