Hallo @alle;
Ich bekomme immer die fehlermeldung :
hier sieht meine Klasse aus :
und so rufe ich dann mein singleton aus :
Kann mir jemand sagen wo ich n fehler gemacht habe?
Ich bekomme immer die fehlermeldung :
Fatal error: Call to a member function prepare() on a non-object
PHP-Code:
class Singleton extends PDO {
private static $_instance;
public function __construct() {
}
public static function getInstance(){
if(!isset(self::$_instance)){
try{
self::$_instance = new PDO(SQL_DSN, SQL_USERNAME, SQL_PASSWORD,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
self::$_instance-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e){
self::disconnect();
return $e->getMessage();
}
}
return self::$_instance;
}
private function __clone() {
}
public static function disconnect(){
self::$_instance = null;
}
public static function execute($sql, $params=null)
{
try{
$dbh = self::getInstance();
$stmt = $dbh->prepare($sql);
$stmt->execute($params);
}
catch(PDOException $e)
{
self::disconnect();
}
}
public static function GetAll($sql, $params, $fetchStyle = PDO::FETCH_ASSOC)
{
$result = null;
try {
$dbh = self::getInstance();
$stmt = $dbh->prepare($sql);
$stmt->execute($params);
$result = $stmt->fetchAll($fetchStyle);
}catch (PDOException $e)
{
self::disconnect();
}
return $result;
}
}
PHP-Code:
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE username = '".$username."' AND password = '".$password."'";
$params = array(':$username'=>$username, ':$password'=>$password);
$fetchStyle = PDO::FETCH_ASSOC;
$stmt = new Singleton();
$stmt->execute($query, $params);
$result = $stmt->GetAll($query, $params, $fetchStyle);
Kommentar