Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL Statement in MySQL Datenbank klappt nicht!

Empfohlene Antworten

Veröffentlicht

Hallo zusammen!

Mal eine Bescheiden Frage, an der ich zur Zeit scheiter...

Ich habe folgende MySQL Tabelle:

_Feld_____Typ________Attribute__Null___Standard

--------------------------------------------------------------------

_OfferID__ tinyint(2)_____________Nein__0

_Datum___varchar(10)___________Ja____NULL

_Owner___tinyint(4)_____________Nein__0

_Desc ____text_________________Ja____NULL

_Link_____text_________________Nein__

Und will mit dem folgenden Statement:

INSERT INTO offer (OfferID,Datum,Owner,Desc,Link) VALUES ('10','10.07.2003','15','Test','test.html')

Werte in diese eintragen.

Jedoch funktioniert diese partout nicht.

Bei einer ähnlichen Datenbank mit ähnlicher Abfrage klappt es.

Was mache ich falsch? :-(

Was genau ist die Fehlermeldung?

Kenne mich mit MySQL nicht aus, aber bist Du sicher, dass eine tinyint-Variable mit Hochkomma angegeben werden muss? Das bezweifle ich gerade sehr, denn es handelt sich doch um eine ganze Zahl, keinen Text, keine Character ... das kenne ich so nicht und wurde mir auch nie so beigebracht. ;O)

Ansonsten sollte das Insert-Statement so funktionieren, von der Syntax ist es korrekt.

Versuche die tinyint-Variablen mal als Zahlen anzugeben ... ansonsten poste mal die Fehlermeldung. :o)

Viel Erfolg!

Gruss,

Gnomeline

P.S. Gibt es in MySQL keinen Datentyp DATE??? *staun*

Original geschrieben von Slayer8

Hallo zusammen!

Mal eine Bescheiden Frage, an der ich zur Zeit scheiter...

Ich habe folgende MySQL Tabelle:

_Feld_____Typ________Attribute__Null___Standard

--------------------------------------------------------------------

_OfferID__ tinyint(2)_____________Nein__0

_Datum___varchar(10)___________Ja____NULL

_Owner___tinyint(4)_____________Nein__0

_Desc ____text_________________Ja____NULL

_Link_____text_________________Nein__

Und will mit dem folgenden Statement:

INSERT INTO offer (OfferID,Datum,Owner,Desc,Link) VALUES ('10','10.07.2003','15','Test','test.html')

Werte in diese eintragen.

Jedoch funktioniert diese partout nicht.

Bei einer ähnlichen Datenbank mit ähnlicher Abfrage klappt es.

Was mache ich falsch? :-(

du könntest deinen SQL vereinfachen, da du sowieso alle spalten in deiner Tabelle füllst und diese auch in der richtigen Reihenfolge!

z.B.

INSERT INTO offer VALUES ('10','10.07.2003','15','Test','test.html')

Aber zu deinem Problem genau kann ich ohne Fehlermeldung auch nix sagen

Ich bin mir ziemlich sicher, dass es an dem Tinyint in Hochkommern liegt.

Vielleicht auch an der länge des Datumsfeldes, wenn MySQL noch ein Escape-Zeichen ("/0") anfügt.

Original geschrieben von kills

du könntest deinen SQL vereinfachen, da du sowieso alle spalten in deiner Tabelle füllst und diese auch in der richtigen Reihenfolge!

z.B.

INSERT INTO offer VALUES ('10','10.07.2003','15','Test','test.html')

Aber zu deinem Problem genau kann ich ohne Fehlermeldung auch nix sagen

..davon würde ich persönlich abraten. Sicher, es funzt, aber erweiter die Tabelle, vergiss den Select und es brät sich einen mit den Fehlermeldungen...

...zum Problem: ich würde auch auf den angesprochenen Tinyint tippen.

Gruss,

der Onkel

Die Fehlermeldung lautet:

Fehler

SQL-Befehl :

INSERT INTO offer (OfferID,Datum,Owner,Desc,Link) VALUES ('12','123124','10','2423ewr','wetw')

MySQL meldet:

You have an error in your SQL syntax near 'Desc,Link) VALUES ('12','123124','10','2423ewr','wetw')' at line 1

Es lag NICHT an den Hochkommas bei Tinyint, sondern an dem Feld "Desc",ein USer (danke Reinhold)

wies mich per PN daraufin.

Danke euch allen!!!

Musst du das Datum nicht auch noch in der schreibweise

YYYY-MM-DD angeben?

Hmmm. Wer lesen kann ist klar im Vorteil. hab erst zu spät gesehen, das der Typ für das Datum auf varchar.

Aber trotzdem sollte man an dieser Stelle für das Datum einen anderen Feldtyp verwenden, z.B date.

Und was genau war jetzt das Problem mit dem Feld "desc"? Weil Desc ein Teil der SQL-Syntax sein kann, oder wie?

:confused:

der Onkel

Mich würde es auch seehr interessieren, warum es mit desc ein Problem gab.:)

Die Vermutung, dass DESC ja ein SQL-Konstrukt sein kann, könnte eine mögliche Erklärung sein, aber ich möchte Gewissheit.:D

Wäre SUPER, wenn Du mich/uns nicht dumm sterben lässt.:D :D :D

Danke schon einmal und ich bin gespannt.

Gruss aus dem Norden

@ kinnley

Ich habe nicht das Datumsformat verwendet, damit ich eine freiere Eingabe habe! Die meisten geben nunmal 10.05.2001 ein anstatt der US-Schreibweise. Das da Fehlerauftauchen wollte ich hiermit umgehen!

@ HolzOnkel & Gnomeline

Keine ahnung, warum es Probleme mit Desc gab, es soll wohl ein in MySQL reserviertes Wort sein.

Auf jeden Fall habe ich Desc in Descr geändert und schon klappte es !

Ein Datumsfeld hätte die folgenden Vorteile.

- Ein einheitliches Format

- einfach zu sortieren

Du musst das Datum doch ohnehin checken, bevor du es in die Datenbank schreibst. In dem Zuge kannst du es doch auch gleich umwandeln

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.