gpt4 book ai didi

php - PDO 中 mysqli_fetch_array 函数的确切等价物是什么?

转载 作者:行者123 更新时间:2023-11-29 05:21:28 26 4
gpt4 key购买 nike

自从我改用 PDO 以来,我似乎真的无法使用正确的函数来完成 mysqli_fetch_array() 正在做的事情,发生这种情况可能是因为我不太了解 mysqli_fetch_array 之间的真正差异和 PDO 的 fecth()。

从某些来源,while($row = mysqli_fetch_array($query) “每次调用时从结果集中获取一行。”,而 $row = $query->fetch() 返回整个结果集一个电话。

我问过两个类似的问题,其中一个有赏金,但我似乎无法找到正确的方法来解决我想做的事情。

, From this question ,

  • mysql_fetch_array = fetch(PDO::FETCH_BOTH) - 行是具有数字和命名索引的数组。
  • mysql_fetch_assoc = fetch(PDO::FETCH_ASSOC) - 行是具有命名索引的数组。
  • mysql_fetch_row = fetch(PDO::FETCH_NUM) - 行是带有数字索引的数组。
  • mysql_fetch_object = fetch(PDO::FETCH_OBJ) 或 fetch(PDO::FETCH_CLASS) 取决于您是否为 mysql_fetch_object 指定了可选的 className 参数。行是对象,可以是指定类或 stdClass。
  • while 循环等同于:

$data = $query->fetchAll(PDO::FETCH_BOTH),

使用此列表中的第一个似乎与 mysqli_fetch_arrray 的行为有所不同。

我试过的方法在 while 循环中返回了很多错误,有时会破坏浏览器,感谢 Chrome,我不会发布它。

这是我想做的

$counter = 0;    
while($row = mysqli_fetch_array($query)){
$counter++;
echo $counter;
echo $row['Name'];
}

如果我们有三行:RESULT;

1
TRIQUESHA

2
STACEY

3
DAQUEN

现在是 PDO

$count = 0;
while($row = $query->fetch(PDO::FETCH_BOTH)){
$counter++;
echo $counter;
echo $row['Name'];
}

同样,如果我们有三行:PDO RESULT

3
TRIQUESHA

3
STACEY

3
DAQUEN

它不计算,它返回的是总行数,如果我有 50 行,它会在每行上重复 50 行。

我做错了什么?

最佳答案

$count and $counter are different variables. – hjpotter92

That's a typo when i was reproducing the code here. – user3109875

这个错字才是真正的问题所在。您看到 PDO 版本中的 3 被重复导致其 $counter 变量在 mysqli 循环后设置为 3,并且它永远不会更新。在 PDO 循环之前需要正确重置它才能看到。

//$count = 0;   // Wrong
$counter=0; // Correct.
while($row = $query->fetch(PDO::FETCH_BOTH)){
$counter++;
echo $counter;
echo $row['Name'];
}

编辑:

虽然 Mark M 正确地指出了我忽略的内容,但我仍然认为这是导致此错误的原因。在该问题的编辑历史中查看此修订

$count = 0;
while($row = $query->fetch(PDO::FETCH_BOTH)){
$count++;
echo $counter; //This will always remain 3 because you are incrementing $count
echo $row['Name'];
}

这将准确地导致此答案所暗示的行为。现在,如果这是实际代码,那么这就是实际原因,如果这与实际情况不同,则此答案无效。

关于php - PDO 中 mysqli_fetch_array 函数的确切等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25337340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com