[Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\Register\regis]

  • Hey,

    ich arbeite gerade an meinem Register Script, nach einem Tutorial.
    Und ich hab es genau so wie es im Tutorial beschrieben wird.

    Hier Zeit: 9:28 Linie ab 42.

    Bei mir kommt aber

    PHP
    Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\Register\register_logic.php on line 44

    Bei mir sieht das folgend aus:

    Linie 44 ist
    Linie 44 ||| $stmt = $db->prepare($sql);
    Linie 45 ||| $stmt->bind_param('sssi',$_POST['username'],$_POST['pass'],$_POST['email'],$user_ip);

    kann mir jemand sagen wo der Fehler ist?

    Vielen dank

  • Darf ich mal fragen, ob man deinen restlichen Code haben könnte?
    PHP kann dein Prepared Statement nicht zuordnen.
    Ist deine $db vorher definiert als Datenbank-Verbindung?

    Versuche dich besser an diesem Beispiel zu halten.

    // Virtual

  • Hey,

    doch $db ist definiert:$db = mysql_connect("localhost","root","");

    Ehm hier ist der Komplette Script:
    Register_logic.php

    Config.php

    register_markup.php

    Und Register.php

    PHP
    <?php
    
    
        require_once('register_logic.php');
        require_once('register_markup.php');
        require_once('config.php');
    
    
     ?>

    Greez

  • Also zum ersten, was auch im LInk zu finden ist, welchen ich dir zuvor gepostet habe:
    Bitte verwende schonmal mysqli_connect(); und nicht die veraltete mysql_connect(); .

    Für deinen Fehler an sich, kann ich dir aktuell nicht helfen, da ich gedanklich nicht darum kümmern,
    doch bitte lass dieses Skript. Beim Überfliegen fallen doch einige Verbesserungen auf.

    Daher biete ich dir an, dass wir uns morgen mal zusammensetzen und es genauer besprechen.
    Daher bitte ich dies zu entschuldigen.
    Bis dahin kannst du den oben von mir angegeben Link besuchen.

    Bis morgen
    // Virtual

  • Um Prepare Statements nutzen zu können musst du eine Verbindung über PDO zur MySQL DB aufbauen. ein mysql_connect kann keine Prepare Statements soweit ich mich entsinnen kann.

    Gruß
    Ulle

  • Das stimmt. Erst seit MySQLi werden "Prepared Statements" unterstützt.


    Dieses von mir angelegte Skript funktioniert beispielsweise einwandfrei:

    Mir ist bewusst, dass die Passwortverschlüsselung nicht unbedingt effektiv ist,
    jedoch habe ich sie lediglich aus dem Skript von Lalox3 übernommen.
    Ebenso weiß ich, dass die Fehlerausgaben am Formular nicht gesichert sind.
    Auch wird eine korrekte Überprüfung, was den Inhalt der Formulareingaben
    betrifft nicht getätigt. Wir wollen nun erst einmal beim Wesentlichen bleiben. ;)

    Gerne nehme ich noch Verbesserungsvorschläge an, da mir ein paar Stellen selber noch nicht ganz gefallen.
    Ich lerne gerne dazu.


    // Virtual

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!