Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit mysql

Einklappen

Neue Werbung 2019

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

  • Problem mit mysql

    Guten Abend,

    Mein problem ist folgendes:

    ich verbinde so zur datenbank:

    PHP-Code:
        $db = new mysqli("localhost""root""""xmasgaming");
        if (
    mysqli_connect_errno()) {
            
    printf("Verbindung fehlgeschlagen: %s\n"mysqli_connect_error());
            exit();
        } 
    wenn ich einen query abschicken will:
    (Dieser code befindet sich in einer include datei)

    PHP-Code:
    function loadNav()
    {
        
    $navi '';
        
    $res $db->query("SELECT * FROM `xmg_navigation`");
        while(
    $resultat $res->fetch_object())
        {
            
    $navi '<li> <a href="'$row["link"] .'"> <span>'.$row["name"].'</span> </a> </li>';
        }
        return 
    $navi;

    wird mir angezeigt das:
    Code:
    Notice: Undefined variable: db in C:\xampp\htdocs\clan\inc\functions.inc.php on line 5
    
    Fatal error: Call to a member function query() on a non-object in C:\xampp\htdocs\clan\inc\functions.inc.php on line 5
    Ich hoffe mir kann jemand helfen da ich schon ca. 5 Tage versuche es hinzuzbekommen.

    Mfg. Aexonyc

  • #2
    Lies dich zum Wirkungsgrad von Variablen ein. $db ist in der Funktion nicht definiert.
    Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

    Kommentar


    • #3
      Anmerkung: Und bitte an dieser Stelle dann nicht global verwenden, sondern $db als Parameter in loadNav() übergeben!

      PHP-Code:
      function loadNav($db

      ... 
      Und zu SELECT * http://php-de.github.io/jumpto/code-smells/#select-
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Hi,

        von global würde ich auch abraten. Du kannst aber z.B (für's Verständnis).

        PHP-Code:
        class MyDatabase
        {
            private static 
        $_connection;

            public static function 
        connect()
            {
                
        $mysqli = new mysqli(...);
                
        self::$_connection $mysqli;
            }

            public static function 
        getConnection()
            {
                return 
        self::$_connection;
            }
        }; 
        Du musst die klasse einmal mit MyDatabase::connect(); laden und kannst dann überall mit

        PHP-Code:
        MyDatabase::getConnection(); 
        die Verbindung aufrufen.

        mfg wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar

        Lädt...
        X