php MySQLi获取结果最佳实践
这是我查询数据库的两种方法 这是我第一个将所有结果保存在数组中的方法。然后我使用foreach循环遍历数组php MySQLi获取结果最佳实践,php,mysqli,Php,Mysqli,这是我查询数据库的两种方法 这是我第一个将所有结果保存在数组中的方法。然后我使用foreach循环遍历数组 public function query($query) { $rows = array(); if ($result = $this->mysqli->query($query)) { if($result->num_rows > 1) { w
public function query($query) {
$rows = array();
if ($result = $this->mysqli->query($query)) {
if($result->num_rows > 1) {
while ($item = $result->fetch_assoc()) {
$rows[] = $item;
}
//jo else sepse nxjerr error kur ska asnje row i ben fetch kur ska row.
} else if($result->num_rows == 1) {
$rows = $result->fetch_assoc();
}
return $rows;
} else {
echo "error";
}
}
然后,为了输出,我使用:
$run_query = $db->query($query);
foreach ((array)$runk_query as $data) {
....
这是我的第二种方法:
$query = $db->query("SELECT * FROM ...");
while($run_query = mysqli_fetch_array($query)) {
//OUTPUT data.
....
}
我注意到,在许多情况下,我需要输出结果,因此我认为使用第一种方法是不好的,因为我使用了一次while
循环,然后我再次使用foreach
循环,所以工作要做两次,但第二种方法不是很好的OOP
有人能给我推荐最好的方法吗?或者如果可能的话,推荐另一个更好的方法吗?您可以用调用mysqli\u fetch\u all()来替换整个第一个函数,而不是用fetch\u assoc()遍历每条记录。这样,您就不必逐个结果构建数组 然后,您可以像往常一样使用第二个foreach运行所有结果 见: 或者,如果使用PDO,则可以使用fetchAll()
请参阅:但是使用
mysqli_fetch_all()将所有结果保存在变量中是一种好方法吗编码>然后使用foreach
循环显示结果?我的意思是,这项工作不是完成了两次吗?您可以将处理代码(输出)放入另一个函数中,并在每次从数据库检索时从第一个函数调用它,而不是执行mysqli_fetch_all()。