閱讀了大量的文章後,沒有得到這個東西運行,也許somone可以幫助我這個。設置PDO連接全球的問題
我想包括一個PHP的(Module.php)文件,從數據庫crapin信息到我的index.php。這個index.php還包含帶有數據庫連接的文件。問題是包含的文件它處理數據庫選擇似乎並不瞭解的PDO對象,腳本死亡這個錯誤,其中:
Fatal error: Call to a member function prepare() on a non-object in
我試圖使PDO對象全局。但不幸的是,這是行不通的。
非常感謝任何幫助(安全我不是要瘋了......)
託尼
的index.php
//DB Connection
require_once ("include/db_connect_inc.php");
$request = $_GET['Controll'];
switch ($request) {
case 0:
echo "XY";
break;
case 1:
global $objDb;
//This file should be able to use the DB Object
include("modules/Eat/Module.php");
break;
}
Module.php
global $objDb;
$dbSelect = $objDb->prepare(
"SELECT DISTINCT ON (nummer) nummer
FROM tableX
"
);
$dbSelect->execute();
while($row = $dbSelect->fetch(PDO::FETCH_ASSOC)) {
$all = $row['nummer'];
}
echo "1 - " . $all;
db_connect_inc.php
$strDbLocation = 'pgsql:host=localhost;dbname=test';
$strDbUser = 'root';
$strDbPassword = 'root';
try{
$objDb = new PDO($strDbLocation, $strDbUser, $strDbPassword);
$objDb->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$objDb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
global $objDb;
}
catch (PDOException $e){
//echo 'Fehler beim Öffnen der Datenbank: ' . $e->getMessage();
print "Error!: " . $e->getMessage() . "<br/>";
}
您對全局的使用完全不正確。您提供的代碼中沒有函數,「$ objDb」與所有文件在相同的範圍內。 – Leigh 2012-08-15 14:08:18