gpt4 book ai didi

PHP:::准备好的语句:::freeresult():::close()

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:28 26 4
gpt4 key购买 nike

使用的重要性是什么:

$stmt->free_result();
$stmt->close();

在使用准备好的语句调用数据库之后:

$mysqli=new mysqli("database", "db", "pass", "user");

$stmt = $mysqli->prepare("SELECT email FROM users WHERE id=? ");
$stmt->bind_param('i',$_SESSION['id']);
$stmt->execute();
$stmt->bind_result($email);
while($stmt->fetch()){
echo $email;
}
$stmt->free_result(); //why do i need this?
$stmt->close(); //why do i need this?

我问是因为没有它们我没有看到任何明显的性能下降。这些命令通常仅在我使用以下方式存储结果时使用:

$stmt->store_result();

像这样:

$mysqli=new mysqli("database", "db", "pass", "user");

$stmt = $mysqli->prepare("SELECT email FROM users WHERE id=? ");
$stmt->bind_param('i',$_SESSION['id']);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($email);
while($stmt->fetch()){
echo $email;
}
$stmt->free_result(); //why do i need this?
$stmt->close(); //why do i need this?

最终问题归结为什么时候使用 freeresult() 和 close() 比较合适?

最佳答案

free_results 语句告诉数据库引擎它可以释放结果集。

当执行你的语句时,一个迭代器被创建。客户端(您的应用程序)通过逐个下载或分块下载来迭代每个结果。

这允许您的应用迭代数百万条记录,而无需将所有结果下载到一个 block 中。

编辑

释放结果将释放客户端的内存。如果单个记录非常大并且需要释放内存,则很有用。

参见: http://php.net/manual/en/function.mysql-free-result.php

关于PHP:::准备好的语句:::freeresult():::close(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8996499/

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