首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PDO是立即连接到数据库还是在准备/查询之后连接到数据库

PDO是立即连接到数据库还是在准备/查询之后连接到数据库
EN

Stack Overflow用户
提问于 2019-04-08 07:26:52
回答 1查看 173关注 0票数 0

我正在尝试写一些带有多个类的代码,这些类稍后会有很多数据库连接/查询。

我的问题是,PDO是否在执行以下行后立即连接到数据库,并且它将一直保持连接,直到它关闭?

代码语言:javascript
复制
$pdo = new PDO($dsn, $user, $pass, $options);

或者等待,直到我们执行以下操作进行连接,例如:

代码语言:javascript
复制
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?');
$stmt->execute([$email]);
$user = $stmt->fetch();

// Closing connection
$stmt = null;

如果我们做new PDO()时它没有立即连接,那么我可以很容易地使$pdo变量成为全局变量,并在每个类中使用它,否则我必须使用__construct()方法在每个类中单独连接,然后关闭__destruct()方法上的连接。(我仍然不确定这是否是获得更好性能的最佳方式)

附注:我们还需要设置$pdo = null来关闭连接吗?或者$stmt = null就足够了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-08 08:27:17

当您实例化new PDO()时,它将尝试持久化到数据库的连接。

通过创建

基类的实例来建立PDO连接。

Source

除非你的代码库相对较小,否则我会建议使用avoid using global variables。您将在不应共享的位置共享数据库实例!

也许我们可以生成一个单例类来获取数据库连接。这样我们就可以获得连接的单个实例,并在数据库工作完成后,在关闭连接之前完成所需的所有工作。

尽早关闭数据库连接会很好。但是,PHP会在脚本执行完毕后为您执行此操作。

如果您没有显式地这样做,

将在您的脚本结束时自动关闭连接。

Source

我希望这能帮到你!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55564554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档