重用数据库连接而不是为每个请求创建新实例
Reuse DB connection instead of creating new instances for each request
我有以下有效的代码,但我想知道使用此技术的更好方法是什么?我想开始重用连接而不是为每个查询创建新实例。
对我的代码有什么实用的建议和解决方案吗?
<?php
class dbc {
function openDb() {
$dbserver = '';
$dbusername = '';
$dbpassword = '';
$dbname = '';
try {
$db = new PDO('mysql:host=' . $dbserver . ';port=3306;dbname=' . $dbname . ';charset=utf8', '' . $dbusername . '', '' . $dbpassword . '', array(PDO::MYSQL_ATTR_INIT_COMMAND =>"SET SESSION time_zone = 'America/Chicago'"));
$timezone = "America/Chicago";
$db->exec("SET time_zone = '{$timezone}'");
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die("error, please try again");
}
return $db;
}
}
<?php
require 'dbc.php';
function getDailyProfitability() {
$db = new dbc();
$query = "SELECT 1 FROM DUAL";
$stmt = $db->openDb()->prepare($query);
$stmt->execute();
return $stmt->fetchAll();
}
?>
不确定这是否正是您要查找的内容,但我找到了 this 文章,其中讨论了使用静态变量来存储数据库连接。
我有以下有效的代码,但我想知道使用此技术的更好方法是什么?我想开始重用连接而不是为每个查询创建新实例。 对我的代码有什么实用的建议和解决方案吗?
<?php
class dbc {
function openDb() {
$dbserver = '';
$dbusername = '';
$dbpassword = '';
$dbname = '';
try {
$db = new PDO('mysql:host=' . $dbserver . ';port=3306;dbname=' . $dbname . ';charset=utf8', '' . $dbusername . '', '' . $dbpassword . '', array(PDO::MYSQL_ATTR_INIT_COMMAND =>"SET SESSION time_zone = 'America/Chicago'"));
$timezone = "America/Chicago";
$db->exec("SET time_zone = '{$timezone}'");
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die("error, please try again");
}
return $db;
}
}
<?php
require 'dbc.php';
function getDailyProfitability() {
$db = new dbc();
$query = "SELECT 1 FROM DUAL";
$stmt = $db->openDb()->prepare($query);
$stmt->execute();
return $stmt->fetchAll();
}
?>
不确定这是否正是您要查找的内容,但我找到了 this 文章,其中讨论了使用静态变量来存储数据库连接。