Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Meine Datenbankklasse verbindet nichtmehr mit der Datenbank

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Meine Datenbankklasse verbindet nichtmehr mit der Datenbank

    Hallo,

    ich schreibe gerade ein forum und daür eine Klasse, die mit der Datenbank verbindet.
    Bis vorhin hat alles wunderbar geklappt, doch jetzt verbindet das Skript nichtmehr mit der Datenbank...
    Die Fehlermeldung:
    Sorry, no connection! (Access denied for user 'ODBC'@'localhost' (using password: NO))
    Die Klasse:
    PHP-Code:

    <?php
        
    class mydb{
            
            protected 
    $mysqli;
        
            
    //verbinden
            
    function __construct() {
                require_once(
    'password.php');
                
    $this->mysqli = @new mysqli($mysqlhost$mysqluser$mysqlpassword$mysqldb);
                
    // testen, ob Verbindung OK
                
    if(mysqli_connect_errno()) {
                    
    printf("Sorry, no connection! (" mysqli_connect_error() . ")");
                    
    $this->mysqli FALSE;
                  exit();
                }
            }
            
            
    //SELECT ergebnis in einen array zusammenfassen
            
    function queryObjectArray($sql) {
                if(
    $result $this->mysqli->query($sql)) {
                    if(
    $result->num_rows) {
                        while(
    $row $result->fetch_object()) {
                            
    $result_array[] = $row;
                            return 
    $result_array;
                        }
                    }else{
                        
    printf("<p>Da ist wohl etwas schief gegangen</p>\n");
                        return 
    FALSE;
                    }
                }
            }
        }    
    ?>
    Ich brauch hilfe Ich hab das Skript schon 10mal durchforstet aber ich finde nichts!!!
    Benutzerdaten hab ich auch schon des öfteren überprüft.

    Ich danke im Voraus

  • Dinn
    antwortet
    Hmm dann hatte ich _once falsch verstanden.
    In meinem Buch steht, dass durch _once die Datei auch bei mehrmaligen einfügen, nur einmal geöffnet wird.
    Aber dann weiß ich das ja jetzt.
    Danke

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    kann es sein, dass du deine Datenbankklasse öfter als einmal aufrufst ... weil dann würdest du auch öfter dein passwort einlesen müssen, was mit _once logischerweise nicht geht ...


    Einen Kommentar schreiben:


  • Dinn
    antwortet
    Hmm das kann eigentlich nicht sein, aber ich nehm das jetzt so hin, denn es funktioniert ja jetzt
    Danke

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    Zitat von Dinn Beitrag anzeigen
    Könnte mir jemand sagen warum es mit den ..._once nicht klappt.?
    Vermutlich, weil _once genau das erfüllt, was nach Definition seine Aufgabe ist ...?

    Du wirst die Datei vermutlich vorher schon woanders eingebunden haben.

    Einen Kommentar schreiben:


  • Dinn
    antwortet
    Ok jetzt habe ich es hinbekommen.

    Es lag an dem
    PHP-Code:
    require_once ('password.php'); 
    Ich habe auch include_once ausprobiert, doch auch hier funktioniert es nicht
    Als Lösung funktionieren inclue und require.
    Könnte mir jemand sagen warum es mit den ..._once nicht klappt.?

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    Bitte Beitrag anpassen - warum und wie, steht oben.

    Einen Kommentar schreiben:


  • Dinn
    antwortet
    Warum?
    Learning by doing
    Es soll kein großes werden, ich will nur mal anfangen, etwas größeres zu schreiben...
    Die ganze zeit kleine Skripte zu schreiben motiviert mich nicht unbedingt.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Der Fehler wird hier zu finden sein:
    PHP-Code:
    $this->mysqli = @new mysqli($mysqlhost$mysqluser$mysqlpassword$mysqldb); 
    Wenn ich mir den Quellcode so ansehe, glaube ich, dass ein Forum im Moment doch eine Nummer zu groß für dich ist.

    Einen Kommentar schreiben:

Lädt...
X