如何使用PDO的持久连接? [复制]

2024-01-04

我有以下代码并在 Firefox 中刷新该网页 5 次,然后 MySQL 显示了 5 个连接。根据 PDO 手册,

持久连接未关闭 在脚本的末尾,但是 缓存并在另一个脚本时重新使用 使用相同的方式请求连接 证书。持久连接 缓存可以让你避免开销 每隔一段时间就建立一个新的连接 脚本需要与 数据库,从而带来更快的网络 应用。

我使用了相同的凭据,但 MYSQL 连接数量不断增加。甚至试图与$db = null无法关闭连接。 我的代码有什么问题吗?

<?php
try {
 $dbh = new PDO('mysql:host=127.0.0.1;dbname=lingtong', 'root', 'xxxxxx', array(PDO::ATTR_PERSISTENT => true));
 foreach ($dbh->query('SELECT * from agent') as $row) 
  print_r($row);
 $dbh = null;
} catch (PDOException $e) {
 print "Error! : " . $e->getMessage() . "<br/>";
 die();
}

这个问题很老了,但如果我贡献一下就可以了。我认为您需要实现一个单例类来处理数据库连接我将在下面编写一个示例类..

<?php
class DB{

//set the connection property to private to prevent direct access 
private static $conn;

//now since we dont want to reinstiate the class anytime we need it, lets also set the constructor to private 
private function __construct(){}

//now lets create our method for connecting to the database 
public static function connect(){

//now lets check if a connection exists already in our $conn property, then we should return it instead of recreating a new connection 
if(!empty(self::$conn)){
return self::$conn;
}//end if 

//upon reaching here means the $conn property is empty so lets create a new connection 

try {
 $dbh = new PDO('mysql:host=127.0.0.1;dbname=lingtong', 'root', 'xxxxxx', array(PDO::ATTR_PERSISTENT => true));

//lets now assign the database connection to our $conn property 
self::$conn = $dbh;

//return the connection 
return $dbh;

} catch (PDOException $e) {
 print "Error! : " . $e->getMessage() . "<br/>";
 die();
}

}//end method 

}//end class

?>

我们的单例类只能建立一个连接并重用它,让我们看看如何使用我们的类

<?php 
$dbh = DB::connect();

foreach ($dbh->query('SELECT * from agent') as $row){ 
  print_r($row);
}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用PDO的持久连接? [复制] 的相关文章

  •  
    标记内删除

    我制作了简单的 BBCode 脚本 一切正常 但后来我使用了一个 javascript 库来美化我的代码 pre pre 现在我面临的唯一问题是 br 每行代码后面的标签 pre pre tags 所以问题是我怎样才能删除 br 标记哪些在
  • 如何通过Elasticsearch模糊匹配电子邮件或电话?

    我想通过 Elasticsearch 对电子邮件或电话进行模糊匹配 例如 匹配所有以以下结尾的电子邮件 gmail com or 匹配所有电话开头136 我知道我可以使用通配符 query wildcard email gmail com
  • 检查 PHP 中“@”字符后面的单词

    我现在正在制作一个新闻和评论系统 但是我已经在一个部分上停留了一段时间了 我希望用户能够在 Twitter 上引用其他玩家的风格 例如 用户名 该脚本看起来像这样 不是真正的 PHP 只是想象脚本 3 string I loved the
  • 获取带有计数的不同记录

    我有一张桌子personid and msg列 personid msg 1 msg1 2 msg2 2 msg3 3 msg4 1 msg2 我想得到总计msg对于每个personid 我正在尝试这个查询 select distinct
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • 蛋糕控制台 2.2.1:烘焙错误

    运行 MAMP 的 OSX 机器 CakePHP 2 2 1 已正确安装和配置 这意味着当我浏览到 Index php 文件时 所有绿色条都显示出来 我已经完成了博客教程 并且正在开发我的第二个应用程序 其中脚手架已启动并运行 现在我第一次
  • 为什么我需要结束 ob_start()?

    php 文档建议我应该用 ob end flush 结束每个 ob start 我在网站的每个页面上使用一个 只是为了允许我在应用程序中的任何位置使用 firephp 日志方法 该应用程序运行良好 但我想知道是否有任何我不知道的东西可能有害
  • PHP 在输入流中使用 fwrite 和 fread

    我正在寻找将 PHP 输入流的内容写入磁盘的最有效方法 而不使用授予 PHP 脚本的大量内存 例如 如果可以上传的最大文件大小为 1 GB 但 PHP 只有 32 MB 内存 define MAX FILE LEN 1073741824 1
  • MySQL 追加字符串

    How can I append a string to the end of an existing table value Let s say I have the table below And let s say that Mari
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • PHP HEREDoc (EOF) 语法在 Sublime Text 3 上突出显示与正斜杠的差异

    我不熟悉 Sublime Text 3 如何使用语法突出显示 例如 如果它纯粹依赖于主题 或者它内置于主题运行的标准中 但就我而言 使用 PHP 的 HERE 文档和转发存在一些语法突出显示差异斜线 一旦出现正斜杠 ST3 就会认为以下所有
  • MySQL 转储未知选项“-no-beep”

    在旧服务器上我使用了mysql转储命令来备份 MySQL 数据库 在新服务器上 MySQL 版本为 5 6 相同的命令给出了错误 unknown option no beep 无论它插入什么 我也在互联网上搜索过 但找不到任何帮助 在 my
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val

随机推荐

  • Swift Firebase 检查用户是否存在

    What am i doing wrong I have a database structure like the one shown in this image In appleDelegate swift i just want to
  • Apache Tiles 和 Spring MVC 中的全局异常页面

    当抛出未处理的异常时 例如RuntimeException 然后我想显示一个常见的错误页面 我想实现一些目标 重用 HTML 模板 使用带有标头等的通用 框架 并将异常信息放入正文中 在正文文档中提供有关异常的一些基本信息 我正在使用 Ap
  • 使用 LINQ 证明一组要求可以通过一组值来满足

    这是发布的问题的子集here https stackoverflow com questions 16703082 crafting a linq based solution to determine if a set of predic
  • JDBC SQL 别名不起作用

    我正在尝试在我的 java web 应用程序中运行以下查询 SELECT platform AS Platform FROM edb cases 该网络应用程序工作正常并且能够执行所有查询 但是每当我使用别名 通过 AS 时 生成的数据集都
  • Chain React setState 回调

    我需要按顺序加载三个不同的 json 文件并使用 fetch 原因是我正在使用 nextjs 导出 并且我需要动态读取这些文件 所以我在需要时获取它们 即使在出口 第一个文件包含用于创建第二个文件的 url 的数据 依此类推 因此每次获取都
  • 如何使 $(document).ready() 函数全局可用?

    我这里有一个有趣的问题 可能听起来很愚蠢 但就是这样 使用 jQuery 的 Ready 函数 我定义了一些函数 如下所示 function var function1 function data do something var func
  • javascript_include_tag Rails 4 在生产中生成“/javascripts/”而不是“/assets”

    我有一个 Rails 4 应用程序 在头脑中 在开发中 呈现以下 HTML 并加载 Modernizr 在生产中 呈现以下 HTML modernizr 是not已加载 404 未找到 在生产中 assets modernizr j
  • 将参数包转换为向量

    我试图理解 C 中的可变参数模板 但我迷失在以下示例中 想象一个函数富 T T T T 它采用相同类型 T 的可变数量参数并将它们转换为向量 知道如何实施吗 它应该像这样工作 foo
  • 副本上的 VBA 事件触发器?

    VBA 中是否有一种方法 当我在 Excel 中复制单元格的值时 它会触发我的函数 或者有什么解决方法吗 或者我可以阅读按键并听 Ctrl C 吗 或者VBA可以读取复制文本的内容吗 原因是 我将一些条目从 Excel 工作表复制到另一个程
  • 如何使 REDIS 中的映射键过期?

    我使用redis来存储用户信息 我在 user 键下设置了许多用户的信息 如下所示 hset user userid1234 如何使用户中的密钥 userid1234 在几秒钟后过期 有一些命令如 expire 只能设置用户的超时时间 但我
  • 读取两个关键字之间的行

    如果我必须在两个关键字之间进行阅读 有人可以建议该怎么做吗 System Power 1 1 2 1 8 2 System Terminate 在这种情况下 答案是 1 1 2 1 8 2 我尝试使用 awk 像 awk 0 System
  • php artisan migrate 抛出 [PDO 异常] 找不到驱动程序 - 使用 Laravel

    我在安装 Laravel 时遇到了不好的经历 然而 我能够做到这一点并进入下一个阶段 我使用了生成器并创建了我的迁移 但是当我输入最后一个命令时 php artisan migrate 它抛出 PDOException 找不到驱动程序 my
  • R:使用地图工具绘制邻国

    假设我正在使用地图工具在世界地图上绘制国家 如果我要绘制一个国家 是否有办法以不同的颜色绘制与该国家接壤的国家 我正在使用形状文件wrld simpl地图工具附带的 所以说我绘制了中国 plot wrld simpl wrld simpl
  • CSS 中的 HTML colspan

    我正在尝试构建类似于以下内容的布局 底部填充上排的空间 如果这是一个实际的表 我可以轻松地完成此操作 td 但因为我只是创建一个类似表格的layout 我不能使用 table 标签 使用 CSS 可以实现这一点吗 没有简单 优雅的 CSS
  • 有或没有美元符号反应[重复]

    这个问题在这里已经有答案了 我在反应函数返回语句中阅读了以下代码 return span charge span span amount span 我的问题是有或没有 它们只是代表要渲染的动态变量 对吗 我看到 和 有时散布在代码中 并且非
  • 如何在sqlite IPHONE中获取像列一样的rowNum

    我有一个像这样的 Sqlite 数据库表 没有上升 但我需要检索表按名称升序排列 当我将其设置为升序时 rowId 按混乱顺序更改如下 但我需要找回一些联系人数量有限 5每次都按升序排列 like 啊啊 Eeee and 然后 Ffff J
  • 如何使用reportlab将png添加到PDF

    我正在与报告实验室合作 我无法找到用鸭嘴兽添加 png 图像的方法 这是这里的一些示例代码http www tylerlesmann com 2009 jan 28 writing pdfs python adding images htt
  • 项目类型“PackageReference”缺少必需的属性“OutputPath”

    我正在尝试通过 Jenkins Pipeline 运行以下命令 bat nuget restore mySolution sln MSBuildPath C Program Files x86 MSBuild 14 0 Bin 但我收到错误
  • C# 使用 EPPLUS 更改 Excel 图表轴格式

    是否有办法更改图表 X 或 Y 轴以设置自定义标签格式 例如 在 XAxis 中 我的标签是日期时间 但格式是 yyyy mm dd hh mm ss 我想将其更改为 yyyy mm dd 想知道在 EPPLUS 中是否可以不使用互操作 对
  • 如何使用PDO的持久连接? [复制]

    这个问题在这里已经有答案了 我有以下代码并在 Firefox 中刷新该网页 5 次 然后 MySQL 显示了 5 个连接 根据 PDO 手册 持久连接未关闭 在脚本的末尾 但是 缓存并在另一个脚本时重新使用 使用相同的方式请求连接 证书 持