Php mysqli-我真的需要做$result->;close()&$mysqli->;close();?

Php mysqli-我真的需要做$result->;close()&$mysqli->;close();?,php,mysql,mysqli,Php,Mysql,Mysqli,刚开始使用mysqli。如果我在小型网站上使用小型数据集(流量方面),我真的需要一直使用这些数据集吗 $result->close(); $mysqli->close(); 另外,对于在没有框架的情况下进行定制PHP和MySQL工作的人来说,mysqli是与MySQL交互的首选方式吗?你应该养成正确清理的习惯(一完成就立即关闭),否则资源泄漏会逐渐累积,直到影响性能 至于哪一个数据库层,应该值得学习,因为它设计良好,与所有主要数据库兼容。PHP将在脚本结束时关闭所有打开的文件和数

刚开始使用mysqli。如果我在小型网站上使用小型数据集(流量方面),我真的需要一直使用这些数据集吗

$result->close(); 
$mysqli->close();

另外,对于在没有框架的情况下进行定制PHP和MySQL工作的人来说,mysqli是与MySQL交互的首选方式吗?

你应该养成正确清理的习惯(一完成就立即关闭),否则资源泄漏会逐渐累积,直到影响性能


至于哪一个数据库层,应该值得学习,因为它设计良好,与所有主要数据库兼容。

PHP将在脚本结束时关闭所有打开的文件和数据库连接。当您处理完连接时,手动操作是一种很好的做法,但如果您不这样做,则不会带来灾难。如果您有一个DB连接,它将在整个脚本中使用,那么您也可以让它保持打开状态


+1在PDO上

我觉得需要更新此线程

根据当前文档,除了$mysql->close()之外,还应该始终使用$mysql->kill()

(顺便说一句,我问过Oracle开发人员关于在MySQL中使用PDO的问题,他们不赞成。他们只使用MySQLi。PDO没有得到维护,并且不支持MySQL当前的许多功能。)编辑:过时的评论


编辑:按照建议切换语句顺序。

当不再需要资源时,尽早释放资源是一个好做法,这可以避免在有更多并发用户访问同一页面时,资源被偷看出来。

+1良好做法和进行清理-1对pdo。如果没有真正的需要,只需添加另一层竞争性。如果使用PDO的唯一原因是与其他数据库的兼容性,那么这个原因对于我们这些从未也永远不会使用其他数据库的人来说是没有意义的。如前所述,自行清理是很好的做法,但据我所知,文档,在写这篇文章的时候,没有提到你应该使用它+对于良好实践,PDO声明在我看来充其量是可疑的,我很确定你会在他们的GitHub repo中看到PDO相关文件的最新时间戳。你有确凿的证据来支持它吗?除了@GordonM提到的内容外,答案中还没有提到“你应该始终使用$mysql->kill()”@hakre如果他在谈论文档,那只是字典中的一条注释,它被否决了8次“你应该始终使用mysqli_kill()函数在mysqli_close()之前执行,以实际关闭和释放PHP使用的tcp套接字。脚本执行后的垃圾收集和mysqli_close()都不会自行终止tcp套接字。我敢肯定,从那时起,连接处理已经发生了一些变化。而且,我现在是拉威尔的大拥护者,所以我很少再考虑连接生命周期。通过交换“.env”文件中的连接来比较PDO和MySQLi的连接时间是小菜一碟,尽管我并不想尝试它。如果脚本被致命错误终止,它似乎不会自动关闭它们
$thread = $mysqli->thread_id;
$mysqli->kill($thread);
$mysqli->close();