我试图从函数返回$ db连接,以便可以在另一个函数中使用它。但是有人函数不理解$ db变量。
function dbConnection(){
$dbhost = 'localhost';
$dbuser = '...';
$dbpass = '...';
$dbname = '...';
try {
$db = new PDO("mysql:host=$dbhost;dbname=$dbname;charset=UTF8", $dbuser, $dbpass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $db;
} catch (PDOException $e){
echo 'Connection failed: ' . $e->getMessage();
}
}
然后在我的所有功能中使用它。
function getCurrentFile(){
dbConnection();
$stmt = $db->prepare(...);
$stmt->execute();
}
有没有更好的方法来处理数据库连接?我以前每次都需要require_once config.php(其中只有数据库连接)文件,但是我不想再这样做了。
选项之一是定义提供数据库对象的单调类:
// File: DbConection.php
class DbConnection
{
/**
* @var \PDO
*/
private static $pdo;
private function __constructor()
{
}
public static function getInstance()
{
if(null === self::$pdo) {
self::$pdo = new \PDO('....);
}
return $self::pdo;
}
private function __clone()
{
}
private function __wakeup()
{
}
}
如果您使用的是composer工具,请将此行添加到composer.json文件:
"autoload": {
"classmap": [
"path_to_your_file/DbConnection.php"
]
},
在您的项目中,包含由composer vendor / autoload.php文件生成的引导程序,并通过以下方式开始使用类:
use DbConnection;
DbConnection::getInstance();
总体而言。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句