我想在php中使用PDO進行mysql連接。我需要有PDO連接對象,它必須在多個文件中可用。數據庫連接也必須是一個類。在這裏找到許多答案並不令人滿意。請解釋實現它的正確方法。如何訪問跨多個類的PDO連接對象?[php + mysql]
我遵循目前的方法是: 文件名:connectClass.php
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
class connect
{
public $db;
public $isConnected;
public function __construct()
{
$this->isConnected = true;
try {
$this->db=new PDO('mysql:host=localhost;dbname=dbname','root','rootpass');
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch(PDOException $e) {
$this->isConnected = false;
throw new Exception($e->getMessage());
}
}
}
$obj=new connect();
?>
的連接對象是在文件名 訪問:addContentClass.php
<?php
include_once 'class/connectClass.php';
class addContent extends connect
{
public function insertContent($title, $content, $page_title, $meta_tags) {
try {
$qry = $this->db->prepare("INSERT INTO tblPageContents (PageName, PageTitle, PageMeta, PageKeyWords, PageContents, PageFooter, PageShortName) VALUES (?, ?, ?, ?, ?, ?, ?)");
$data = array($title, $content, $page_title, $meta_tags);
$qry->execute($data);
echo "<div id=\"dialog-ci\" title=\"Content updation success\" style=\"color:green\">Content insertion success</div>";
}
catch(PDOException $e)
{
echo 'Query failed'.$e->getMessage();
}
}
}
?>
與此代碼的問題是我需要使用延伸每次。
U總是可以使用單例方法。這樣,你可以從任何地方訪問對象,請注意這不是最合適的方法。依賴注射是更好的... – DarkBee 2014-09-30 11:27:17
@DarkBee感謝您的快速響應。你能否提供兩個文件的例子。 – 2014-09-30 11:29:06
在另一個類的構造函數中給出你的連接變量(實例)。 – Daan 2014-09-30 11:31:14