Rinma Geschrieben 7. September 2011 Geschrieben 7. September 2011 Tag ich habe folgendes Problem und komme einfach nicht auf die Lösung. Es wäre nett wenn ihr es mir genauer erklären könntet da ich das Problem bei dieser Funktion öfters habe und manchmal dann wieder nicht und ab und zu kommts und ist dann weg ... würde halt gerne wissen worum es da genau geht und wieso das passiert ... Danke im Vorraus Fehler: Fatal error: Call to a member function bind_param() on a non-object in H:\Data\Apache2GO\www\rinmas-welt\todo.php on line 24 Code: if($_SESSION["status"] === true) { if ($_SESSION["send"] == false) { $smarty->assign('versand', "Nachricht versendet am "); $sqlb = $mysqli->prepare("INSERT INTO ideen (from_user, idee, eingereicht) VALUES (?, ?, ?);"); $idee = $sqlb->bind_param("sss", $user[0], $nachricht, $daze); $idee->execute(); $idee->close(); $mysqli->close(); unset ($nachricht); unset ($_POST["idee"]); $_SESSION["send"] = true; header("refresh:2;todo.php"); exit(); ob_end_flush(); } [/PHP]
CSharp92 Geschrieben 7. September 2011 Geschrieben 7. September 2011 Wo definierst Du $sqlb? $sqlb scheint wohl manchmal nicht definiert zu sein (Fehler bei einer Funktion???). Und wenn du auf etwas leeres zugreifst, kommt der Fehler. Ich arbeite erst seit paar Wochen mit PHP, allerdings sollte es das sein.. wenn nicht, verbessert mich
Rinma Geschrieben 7. September 2011 Autor Geschrieben 7. September 2011 Hmm Schlechte Wortwahl. Mit Funktion mein ich: $sqlb = $mysqli->prepare("INSERT INTO ideen (from_user, idee, eingereicht) VALUES (?, ?, ?);"); $idee = $sqlb->bind_param("sss", $user[0], $nachricht, $daze); $idee->execute(); [/PHP] $sqlb definier ich bis dahin garnicht. Aber wie gesagt ich benutzte exakt dasselbe nochmal in einer anderen .php Datei, mit anderen variablen namen, und dort funktioniert es deshalb versteh ich das ja nicht.
pixel007 Geschrieben 7. September 2011 Geschrieben 7. September 2011 Du willst 4 Parameter an 3 Platzhalter zuweisen. Ist das so gewollt?
Rinma Geschrieben 7. September 2011 Autor Geschrieben 7. September 2011 nee nicht wirklich aber so hab ich es irgentwie bei der anderen datei damals zum laufen bekommen... mom ich poste lieber mal denn ganzen code <?php ob_start(); session_start(); require_once 'dblogin.php'; require 'smarty.php'; $smarty = new MySmarty; $smarty->caching = true; $smarty->cache_lifetime = 14400; $nachricht = $_POST["idee"]; $daze = $datum . " " . $zeit; $u = $mysqli->query("SELECT user FROM bg1 WHERE user='" . $_SESSION["user"] . "';"); $userv = $u->fetch_row(); $user = $userv[0]; if($_SESSION["status"] === true) { if ($_SESSION["send"] == false) { $smarty->assign('versand', "Nachricht versendet am "); $idee = $mysqli->prepare("INSERT INTO ideen (from_user, idee) VALUE (?, ?);"); $idee->bind_param("ss", $user, $nachricht); $idee->execute(); $idee->close(); $mysqli->close(); unset ($nachricht); unset ($_POST["idee"]); $_SESSION["send"] = true; header("refresh:2;todo.php"); exit(); ob_end_flush(); } elseif ($_SESSION["send"] === true) { $smarty->assign('status', "Sie haben bereits eine Nachricht versendet. Versuchen Sie es später noch einmal."); } } else { $smarty->assign('status', "Sie sind kein angemeldeter Benutzer."); } $smarty->display("todo.tpl"); ?> [/PHP] Hab mitttlerweile kleinere fehler weg gemacht und ein zwei unnötige dinge läuft aber immer noch nicht
pixel007 Geschrieben 8. September 2011 Geschrieben 8. September 2011 Also lass dir doch mal die Variablen "user" und "nachricht bevor du sie bindest ausgeben. Oder lass dir mal den Fertigen SQl string anzeigen (mit den gebindeten Variablen). Ich weiss leider nicht wie das in mysqli geht.
Jejerod Geschrieben 9. September 2011 Geschrieben 9. September 2011 Fehler: Fatal error: Call to a member function bind_param() on a non-object in H:\Data\Apache2GO\www\rinmas-welt\todo.php on line 24 Logischerweise enthält die Variable in dieser Zeile kein MySQLi_STMT Objekt, kennt also die Methode bind_param nicht. Da mysqli_prepare entweder ein MySQLi_STMT zurück gibt oder FALSE wird es wohl letzteres sein. Folgerichtig ist dein SQL Statement verkehrt. Fehlerabfragen bei allen Datenbankaktionen sind übrigens nie Verkehrt (hint, hint)
Rinma Geschrieben 9. September 2011 Autor Geschrieben 9. September 2011 danke hab das problem gelöst bekommen.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden