• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

sql datetime feld updaiten...

Nick

Mitglied
Hallo Leute.

Ich versuche gerade ein mysql datetime feld abzudaiten, doch es passiert leider nichts. :(

Hier ist der Code:
PHP:
$date = date('Y-m-d H:i:s');
$lastlogin = "UPDATE authorized_users SET last-login = '$date' WHERE email='$email' ";
$result = $db_conn->query($lastlogin);

ja und $email ist vorhanden, und richtig initialisiert.

Das Feld bleibt gleich... :(

Sieht jemand den Fehler?

MfG
 
Verwende lieber gleich datenbankeigene Datumsfunktionen. Weiterhin solltest Du auch auf den Erfolg des Statements prüfen. Denn momentan weißt Du nicht, ob das was Du hast einen SQL-Fehler verursacht. Und Du solltest alle Variablen auch escapen.

Also:
PHP:
$lastlogin = "UPDATE authorized_users SET last-login = NOW() WHERE email='".mysql_escape_string($email)."'";
$result = $db_conn->query($lastlogin) || die("SQL-Fehler");

Hinweis:
Ich weiß nicht was $db_conn bei dir ist, offenbar eine Klasse. Mitunter kann man in diese bereits eine Fehlerabfrage mit einbauen, dann wäre das o.g. die() an der Stelle nicht notwendig.
 
Dann lass dir das Statement ausgeben

PHP:
die("SQL-Fehler: ".$lastlogin);

und führe das was Du dort siehst über phpmyadmin direkt in der Datenbank aus. Dann sollte dir die Datenbank sagen was daran falsch ist.
 
hm also der - war nen Syntax Fehler.

Jetzt läuft es per phpmyadmin, also wenn ich da das eingebe was es mir zurück gibt
UPDATE authorized_users SET lastlogin = NOW() WHERE email='email'
, wird das Feld Upgedaitet.
Allerdings über php geht es nicht. Da gibt er mir immer noch nen die aus, und das Feld bleibt gleich.

Ne Idee woran das jetzt wieder liegt?

Danke schon mal :)
 
Zuletzt bearbeitet:
Da Du uns den Rest des Codes nicht zeigst, kann ich nur raten, dass es vlt. an der fehlenden Datenbankverbindung liegt.
 
Schuldige ;) Das hier ist der gesamte Code vom Login Script:

<?php


session_start();



if (isset($_POST['email']) && isset($_POST['password']))
{
// Wenn der Benutzer versucht hat, sich anzumelden
$email = $_POST['email'];
$password = $_POST['password'];

$db_conn = new mysqli('localhost', '**, '**', '**');


if (mysqli_connect_errno()) {
echo 'Verbindungsaufbau zur Datenbank fehlgeschlagen:'.mysqli_connect_error();
exit();
}
$query = "UPDATE authorized_users SET Logins = Logins+1 WHERE email='$email' ";
$date = date('Y-m-d H:i:s');
$lastlogin = "UPDATE authorized_users SET lastlogin = NOW() WHERE email='".mysql_escape_string($email)."'";
die("SQL-Fehler: ".$lastlogin);
$result = $db_conn->query($query);





if(!eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$",
$_POST['email'])) {
echo "<font color=#FF0000>Ungültige Email-Adresse</font>";
exit;}
if(!preg_match("/^[a-zA-Z._0-9 ]{1,30}$/",$password))
{
echo 'Du verwendest unerlaubte Sonderzeichen im Password ';
exit();
}


$db_conn = new mysqli('localhost', '**', '**', '**');


if (mysqli_connect_errno()) {
echo 'Verbindungsaufbau zur Datenbank fehlgeschlagen:'.mysqli_connect_error();
exit();
}





$query = 'select * from authorized_users '
."where email='$email' "
." and password='$password' "
." and okey = 1";


$result = $db_conn->query($query);
if ($result->num_rows)
{
// Falls die Benutzereingaben in der Datenbank stehen,
// Benutzer für die Sitzung registieren
$_SESSION['valid_user'] = $email;
}
$db_conn->close();
}


if (isset($_SESSION['valid_user']))
{


header ("Location: http://**");
}
else
{
if (isset($email))
{
echo 'Ihre Anmeldung ist fehlgeschlagen. Ein Möglicher Grund hierfür ist, dass sie noch nicht Freigeschaltet worden sind! Oder sie haben ihre Email-Adresse oder ihr Password falsch eingegeben.<br />';
}
else
{
echo 'Sie sind nicht angemeldet.<br />';
}


}
?>
 
Zuletzt bearbeitet:
Das hast Du ja auch falsch geschrieben:

PHP:
$date = date('Y-m-d H:i:s');
$lastlogin = "UPDATE authorized_users SET lastlogin = NOW() WHERE email='".mysql_escape_string($email)."'";
die("SQL-Fehler: ".$lastlogin); 
$result = $db_conn->query($query);

So brichst Du jegliche Darstellung der Seite an der Stelle an. Richtig wäre:

PHP:
$lastlogin = "UPDATE authorized_users SET lastlogin = NOW() WHERE email='".mysql_escape_string($email)."'";
$result = $db_conn->query($query);

Da Du mysqli verwendest, solltest Du dir diese Seite anschauen um auch noch die MySQL-Fehler ordentlich abfangen zu können:
PHP: mysqli::$error - Manual

Und bitte verwende nächstes Mal Code-Tags um deinen Quellcode im Forum zu posten. Sihe einfach besser aus.
 
Zurück
Oben