MySQL Datetime fehler

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hi liebe breadfish community,


    Ich habe ein Problem ich möchte gerne das datum der Registrierung in der MySQL Datenbank abspeichern. Leider will es mir nicht wirklich gelingen.


    Für die Datenbank habe ich in die Spalte datetime genommen


    new name[MAX_PLAYER_NAME],query[128],passwort[128];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>4)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO account (Name,Passwort,Regdatum) VALUES ('%s','%s','NOW()'",name,passwort);


    Mein Kumpel meine es würde reichen hinten NOW() zu nehmen aber es will einfach nicht Funktionieren habt ihr eine Idee?


    In der Mysql.log steht
    "[00:01:40] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"
    LG Grimmberl

  • mach dei einfachen Anführungszeichen bei dem NOW() weg da NOW eine SQL-Funktuion ist benötigst du das nicht sonst wird das ganze auch nicht als derartiges erkannt. Zu dem fehlt dir auch eine Klammer.


    SQL
    "INSERT INTO `account `(`Name`,`Passwort`,`Regdatum`) VALUES ('%s','%s',NOW());"
  • Danke endlich funzt es habe es jetzt so


    format(query,sizeof(query),"INSERT INTO account (Name,Passwort,Regdatum) VALUES ('%s','%s',NOW())",name,passwort);


    Sind diese zeichen ` nötig bei mir geht es auch ohne


    Nicht zwingend diese Zeichen werden Backticks genannt und sind dazu da das die tabellennamen oder spaltennamen nicht als SQL-Funktionen erkannt werden. Also somit erfüllen sie den selben Zweck wie die einfachen Anführungszeichen um statische, nicht-numerische und nicht-primitive Werte zu maskieren.


    Das Semikolon ist nicht zwingend gehört aber zu einem sauberen Codingstil und signalisiert MySQL das hier das Query zu Ende ist