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

Jam*_*mes 34 php mysql mysqli

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

$result->close(); 
$mysqli->close();
Run Code Online (Sandbox Code Playgroud)

另外,对于没有框架的自定义PHP和MySQL工作的人来说,mysqli是与MySQL交互的一般首选方式吗?

Emi*_*röm 37

PHP将关闭脚本末尾的所有打开文件和数据库连接.完成连接后,手动执行此操作是一种很好的做法,但如果不这样做,则不会发生灾难.如果您有一个将在整个脚本中使用的数据库连接,您也可以将其保持打开状态.

PDO上+1


Ixa*_*ida 16

我觉得需要更新这个帖子......

根据当前的文档,除了$ mysql-> close()之外,你应该总是使用$ mysql-> kill().

$thread = $mysqli->thread_id;
$mysqli->kill($thread);
$mysqli->close();
Run Code Online (Sandbox Code Playgroud)

(作为旁注,我向Oracle开发人员询问了如何将PDO与MySQL结合使用,并且不鼓励使用它.他们专门使用MySQLi .PDO尚未维护,并且它不支持MySQL的许多当前功能.)编辑:过时的评论.

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

  • 如前所述,做好自己的清理工作是一种很好的做法,但据我所知,在撰写本文时,文档并未提及您应该使用它.良好做法+1. (4认同)
  • PDO 声明在我看来充其量是可疑的,我很确定你会在他们的 GitHub 存储库中看到 PDO 相关文件的最近时间戳。你有确凿的证据来支持它吗? (3认同)
  • 除了@GordonM提到的内容之外,答案中的引用缺少关于*"你应该总是使用$ mysql-> kill()"*的说法. (3认同)

Mat*_*hen 3

您应该养成正确进行清理的习惯(完成后立即调用 close),否则资源泄漏会逐渐累积,直到影响性能。

至于什么DB层,学习PDO应该是值得的,因为它设计精良,并且兼容所有主流数据库。