In PHP, ich folgende Singleton Database Klasse habe:PHP Singleton Datenbankabfrage
class Database
{
private static $instance;
private function __construct()
{
self::$instance = new mysqli('localhost', 'root', 'Matthias', 'financecontrol', '3307');
if (!self::$instance) {
throw new Exception('Could not connect to database in function __construct.');
}
}
public static function getInstance()
{
if (!self::$instance) {
self::$instance = new Database();
}
return self::$instance;
}
}
Jedes Mal, wenn ich versuche, eine Abfrage auf der Datenbank in einer anderen PHP-Datei auszuführen, zum Beispiel, ob ein Benutzer zu überprüfen, ist bereits vorhanden:
function userExists($username)
{
try {
$connection = Database::getInstance();
$result = $connection->query("select * from user where username='$username'");
if (!$result) {
throw new Exception("Connection to database failed in function userExists.");
}
if ($result->num_rows > 0) {
return true;
} else {
return false;
}
} catch (Exception $ex) {
$errorPager = new ErrorpageGenerator();
$errorPager->generateErrorPage($ex->getMessage());
return false;
}
}
ich erhalte eine Fehlermeldung "PHP Fatal error: Call to undefined Methode Datenbank :: query() in User.php auf der Leitung 44"
ich habe versucht, eine Abfrage-Funktion in der DATABAS Hinzufügen Die Klasse, aber das schien das Problem nicht zu beheben. Irgendwelche Ideen? Danke
ich so etwas versucht haben. Aber das erzeugt diesen Fehler: "Parent: Child-Prozess wurde mit Status 255 beendet - Neustart." Und die Webseite stürzt einfach ab. – Matthias
Hm vielleicht mit 'self :: $ conn-> query ($ sql)'? (Ich hatte es zuerst statische) –
Ja, ich habe diesen Fehler bemerkt und es selbst behoben. Gleiches Ergebnis. – Matthias