我不知道我的方法在php中连接数据库是否正确。
以下是我使用的方法。
1.创建了一个db_functions.php
文件。
db_functions.php
/*----for connecting db----*/
function db_connect(){
$connect=new PDO('mysql:host=localhost;dbname=keralalotteryapp','root','');
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $connect;
}
function get_student_data(){
$con=db_connect();
//rest of my query
}
function get_marks($id){
$con=db_connect();
//rest of my query
}
2.在我的每个页面中,我都包含了这个并以这种方式调用函数
<?php
require 'db_functions.php';
get_student_data();
get_marks($id);
?>
但是每次调用函数get_student_data()
和get_marks()
它都会再次调用db_connect
函数。
所以这是正确的方法吗?
答案 0 :(得分:1)
在Connection.php
文件中创建连接类: -
class Connection{
public static $PDO =null;
public static function getConnectionInstance()
{
try{
$PDO = new PDO('mysql:host=localhost;dbname=keralalotteryapp','root','');
return $PDO;
}catch(PDOException $e)
{
die($e->getMessage());
}
}
}
或使用此类任何其他php文件: -
require_once './Connection.php';
function __construct() {
$this->dbh = Connection::getConnectionInstance();
}
创建构造或调用连接调用的静态方法
答案 1 :(得分:0)
有很多方法可以管理数据库连接,我见过一个全局连接对象,我看到有些人做连接工厂,最终它真正归结为你在特定应用程序中的需求。 / p>
话虽如此,如果你有支持它,我一直是基于闭包的设置的粉丝,因为我发现编写干净的代码变得容易。
function execute_in_db_context($callback) {
$connect=new PDO('mysql:host=localhost;dbname=keralalotteryapp','root','');
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$callback($connect);
$connect=null; //cleanup because we can
}
execute_in_db_context(function ($db_connection) {
//blah blah
});