我有一個db連接函數和一個抽象數據庫類,因爲我構造它的方式。我必須繼續添加我的PDO連接代碼給構造函數。無法將變量從函數傳遞到類
我的config.php我在abstract.class.php有
function dbconnect()
{
$dbh; // database handler
$host = 'localhost';
$user = 'root';
$pass = '';
$dbname = 'test101';
$error;
// Set DSN
$dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
// Set options
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false
);
// Create a new PDO instanace
try{
$this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
}
// Catch any errors
catch(PDOException $e){
$this->error = $e->getMessage();
}
}
include_once('config/config.php');
class Database {
public function __construct() {
dbconnect(); //connect to database
}
public function query($query) {
$this->stmt = $this->dbh->prepare($query);
}
}
$database = New Database();
沒有在config.php我有一個dtabase處理$dbh
和abstract.class.php我我正在查詢函數中調用它。
我的問題
我得到一個錯誤Undefined property: Database::$dbh
。我怎麼能從我的config.php傳遞給abstract.class.php?我想當你使用PHP包括這是複製和粘貼該文件中的任何文件,你想要使用它的相同。如何將$dbh
從config.php傳遞到abstract.class.php,請隨時就任何可能發生的問題給我提供建議,或者任何與我的PDO連接有關的安全問題。
如果我複製並在構造函數中傳遞我的函數,並在構造函數外部將數據庫連接變量設置爲private $dbh;
,但是這樣做的問題是當我不需要它時總是需要包含類。有時我可能只需要連接到數據庫還我想添加define salt
到config.php文件
您認爲'dbconnect'函數中定義的'__construct'函數可以做什麼? – zerkms
@zerkms抱歉忘記編輯該部分時,我通過 – user3057514
複製代碼問題仍未解決。它們只是2個嵌套函數。 – zerkms