我想通过PDO以静态方式访问连接数据库,但我仍然收到错误。这是我的代码:静态和非静态方法工作
require_once 'include/class.Settings.php';
class MonthlySums{
protected static $dbh;
public function __construct() {
$user = Settings::$db['user'];
$pass = Settings::$db['password'];
$dsn = 'mysql:host=' . Settings::$db['host'] . ';dbname=' . Settings::$db['db'];
try {
self::$dbh = new PDO($dsn, $user, $pass);
} catch(PDOException $e) {
die("Error! : " . $e->getMessage());
}
}
public static function get($init_id) {
$sql = "SELECT `year`, `month`, `gains_monthly_sum` FROM `fxs_gain_sums` WHERE `init_id` = '$init_id'";
$resultats = MonthlySums::$dbh->query($sql);
var_dump($resultats);
}
}
我有这样的错误:
Fatal error: Call to a member function query() on a non-object in /home/public_html/gainlosssums.php on line 45
这条线是:$resultats = MonthlySums::$dbh->query($sql);
如何使它工作静态的方式?
更改MonthlySums :: $ dbh-> query($ sql);到self :: $ dbh-> query($ sql); –
致命错误:访问未声明的静态属性:Settings :: $ dbh – pollux1er
好吧,上一个错误又回来了 – pollux1er