Jetzt hab ich eure Ratschläge mal beachtet:
error_reporting((E_ALL | E_STRICT));
ini_set('display_errors', 1);
class db{
protected static $_instance;
protected static $_db_host;
protected static $_db_user;
protected static $_db_pw;
protected static $_db_name;
protected static $_db_connection;
# Konstruktor - private - kann nicht aufgerufen werden
private function __construct(){}
# Singleton
protected static function db_singleton()
{
if (!isset(self::$instance)) {
$c = __CLASS__;
self::$instance = new $c;
}
return self::$instance;
}
# Datenbankwerte setzen
public static function db_set_vars($host,$name,$pw,$dbname){
self::$db_host=$host;
self::$db_user=$user;
self::$db_pw=$pw;
self::$db_name=$dbname;
}
# Zur Datenbank verbinden
public static function db_connect()
{
self::$db_connection = new MySQLi($_db_host,$_db_user,$_db_pw,$_db_name);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
} else {
echo "alles korrekt";
}
}
# Query ausführen
public static function db_query($query){
self::$db_connection->query($query);
}
}
$db=db::db_singleton();
$db->db_set_vars('localhost','root','pw','dbname');
$db->db_connect();
$user="name";
$pw="pw";
$sql="INSERT INTO users(user,pw) VALUES('".$user."','".$pw."')";
$db->db_query($sql);
Fehlermeldung:
Fatal error: Call to private method db::db_singleton() from context '' in
Es ist ihm auch latte ob ich die Singletonfkt auf private setze.
Hab einiges ausprobiert aber klappt nicht.
Lg,
Chris