kostenloser Webspace werbefrei: lima-city


PHP SQL UPDATE über bind_param() machen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    computerkurs2011

    Kostenloser Webspace von computerkurs2011

    computerkurs2011 hat kostenlosen Webspace.

    Hallo. Ich habe ein Problem mit meinem Code. Ich habe bereits nach einer Lösung gegooglt, dort fand ich aber nur das selbe was ich bereits in meinem Code stehen habe.

    So mein Problem ist folgendes: Ich möchte zwei Werte in meiner Datenbank per UPDATE updaten. Diese Werte will ich dann von bind_param() und execute() in die Datenbank eintragen lassen. Allerdings gibt es hier ein paar Probleme den es scheint so, als würde die Syntax nicht stimmen und sich der UPDATE Befehl krass von dem INSERT Befehl unterscheiden.

    Hier ist der zum Fehler führende Quellcodeausschnitt:
    $sql_login_done = "UPDATE user SET
                                    last_login=?, online_status=?
                                    WHERE email = ".$username;
    
                                    $statement_login_done = $db->prepare($sql_login_done);
                                    $statement_login_done->bind_param('si', time(), 1);
                                    $statement_login_done->execute();


    Was mach ich falsch. Ich würde ungerne solch eine Methode verwenden:

    $sql_login_last = "UPDATE user SET last_login=time() WHERE email='".$username."'";
                                        mysql_query($sql_login_last);
                                        @mysql_close($sql_login_last);


    Schon mal vielen Dank für eure Bemühungen.

    cpk2011
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. h**s

    also wenn du prepared-statements objektorientiert in mysqli einsetzen willst würde ich sowohl überprüfen ob du time() nicht lieber als integer bindest und auch den wert der where-klausel parametrisieren - und was macht die "1" bei dir als letzter parameter von bind_param() ?:
    <?php
    $sql_login_done = "UPDATE user SET last_login=?, online_status=? WHERE email=?";
    
    $statement_login_done = $db->prepare($sql_login_done);
    $statement_login_done->bind_param('iis', time(), 1, $username);
    $statement_login_done->execute();
    ?>


    ich gehe mal davon aus das die verbindungsherstellung klappt und du auch daran denkst die verbindung am ende wieder zu schließen,,,

    Beitrag zuletzt geändert: 14.2.2013 21:35:04 von hcms
  4. Autor dieses Themas

    computerkurs2011

    Kostenloser Webspace von computerkurs2011

    computerkurs2011 hat kostenlosen Webspace.

    Ich werd das gleich mal ausprobieren. Die "1" signalisiert, das der User online ist. Es gibt zwei mögliche Werte "1" und "0". Dabei ist "0" Offline und "1" Online.

    cpk2011

    -- Edit --

    Das scheint auch nicht zu funktionieren: dann kommt bei mir die Fehlermeldung:

    Fatal error: Cannot pass parameter 3 by reference in F:\xampp\htdocs\test.php on line 12

    Hier also die Codezeile 5.

    Beitrag zuletzt geändert: 14.2.2013 21:30:58 von computerkurs2011
  5. h**s

    ja jetzt hatte ich die 1 vergessen :-P

    hab obigen beitrag aktualisiert - gehts jetzt ?
  6. Autor dieses Themas

    computerkurs2011

    Kostenloser Webspace von computerkurs2011

    computerkurs2011 hat kostenlosen Webspace.

    ne leider nicht, hatte dies auch schon selbst bei mir im code berichtigt.
  7. h**s

    hmm, probier mal so:
    <?php
    	$sql_login_done = "UPDATE user SET last_login=?, online_status=? WHERE email=?";
    	$statement_login_done = $db->prepare($sql_login_done);
    	
    	$cTypen = "iss";
    	$iZeit = time();
    	$iStatus = 1;
    	$cUsername = $username;
    	
    	$statement_login_done->bind_param($cTypen, $iZeit, $iStatus, $cUsername);
    	$statement_login_done->execute();
    ?>
  8. Autor dieses Themas

    computerkurs2011

    Kostenloser Webspace von computerkurs2011

    computerkurs2011 hat kostenlosen Webspace.

    Vielen Dank, jetzt gehts. Es ist wohl nur möglich Werte aus einer Variable eintragen zu lassen. Schade aber hauptsache ist ja das es geht. Ach ja. Der Type, Also 'iss' muss nicht in einer extra Variable sein um zu funkunieren.

    cpk2011
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!