PDO MySQL fetchAll() 在结果中使用双倍的必要内存?

发布于 2024-10-19 04:16:02 字数 852 浏览 3 评论 0原文

当我将 ->fetchAll() 与 PDO 一起使用时,当我执行 print_r() 时,结果数组看起来像这样:

Array
(
    [0] => Array
        (
            [week] => 2006-03-05
            [0] => 2006-03-05
            [ath] => 112.89166667
            [1] => 112.89166667
        )

    [1] => Array
        (
            [week] => 2006-03-12
            [0] => 2006-03-12
            [ath] => 260.04527778
            [1] => 260.04527778
        )

    [2] => Array
        (
            [week] => 2006-03-19
            [0] => 2006-03-19
            [ath] => 219.23472222
            [1] => 219.23472222
        )

等等,

结果值是否存储记忆中两次?一个位于数字数组索引下,例如 01,另一个位于其命名索引下,例如 weekath?

我主要只是好奇。我不认为这会对我的计划产生重大影响。谢谢。

When I use ->fetchAll() with PDO, the resulting array looks like this when I do a print_r():

Array
(
    [0] => Array
        (
            [week] => 2006-03-05
            [0] => 2006-03-05
            [ath] => 112.89166667
            [1] => 112.89166667
        )

    [1] => Array
        (
            [week] => 2006-03-12
            [0] => 2006-03-12
            [ath] => 260.04527778
            [1] => 260.04527778
        )

    [2] => Array
        (
            [week] => 2006-03-19
            [0] => 2006-03-19
            [ath] => 219.23472222
            [1] => 219.23472222
        )

etc., etc.

Are the resulting values stored twice in memory? One under a numerical array index like 0 and 1, and the other under its named index, such as week or ath?

I am mainly just curious. I don't expect this to really impact my program significantly. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只是偏爱你 2024-10-26 04:16:02

结果值是否在内存中存储了两次?

是的。请参阅手册

PDO::FETCH_BOTH(默认):返回一个按结果集中返回的列名称和 0 索引列号索引的数组

使用可选的 $fetch_style 参数更改 fetchAll() 的行为方式。

$result = $sth->fetchAll(PDO::FETCH_ASSOC);

Are the resulting values stored twice in memory?

Yes. See the manual:

PDO::FETCH_BOTH (default): returns an array indexed by both column name and 0-indexed column number as returned in your result set

Use the optional $fetch_style parameter to change the way fetchAll() behaves.

$result = $sth->fetchAll(PDO::FETCH_ASSOC);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文