gpt4 book ai didi

PHP PDO FetchAll 与 Fetch

转载 作者:行者123 更新时间:2023-12-01 00:43:42 32 4
gpt4 key购买 nike

我相信我使用的 PDO 提取函数完全错误。这是我正在尝试做的事情:

查询一行,得到结果,使用辅助函数将结果处理成数组。

查询

function userName($db){
$q = $db->prepare("SELECT id, name FROM users WHERE id = :user");
$q->bindParam(":user", $user);
$q->execute();
$qr = $q->fetchAll(PDO::FETCH_ASSOC);
if ($qr->rowCount() > 0){
foreach($qr as $row){
$names[$row['id']] = buildArray($row);
}
return $names;
}
}

我的自定义数组构建函数

function buildArray($row){
$usernames = array();
if(isset($row['id'])) $usernames['id'] = $row['id'];
if(isset($row['name'])) $usernames['name'] = $row['name'];
}

我实际上从中得到了我想要的,但是当我在中间回显时,我看到事情循环了 3 次而不是一次。我认为我滥用了 fetchAll。

感谢任何帮助

最佳答案

如果您要构建一个新数组,那么让 fetchAll() 构建一个数组没有多大意义。编写您自己的 fetch() 循环:

function userName($db){
$q = $db->prepare("SELECT id, name FROM users WHERE id = :user");
$q->bindParam(":user", $user);
$q->execute();
$names = array();
while ($row = $q->fetch(PDO::FETCH_ASSOC)) {
$names[$row['id']] = $row;
}
return $names;
}

也不需要 buildArray(),因为 $row 已经是您想要的关联数组。

关于PHP PDO FetchAll 与 Fetch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25793235/

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