Daten Eintragen in die Mysql Datenbank Scheitert.

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Bin jetzt grade auf der Arbeit , schaue nachher mal , stimmt eine klammer fehlt .

Sollte es dann trotz nicht gehen schicke ich dann mal den Fehler Code .

Mein Fehler , hatte ich vergessen .
Benutzeravatar
noisefloor
User
Beiträge: 4149
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

der Fehler will dir sagen, was das was nicht stimmt... das schöne bei Python ist, dass die Fehlermeldungen in der Regel relativ explizit sind und die neueren Python-Version die Stelle des Fehler i.d.R. markieren.

Benutzt du einen Editor mit Syntaxhervorhebung oder eine IDE zum Programmieren? Dann sollte der Fehler auch dadurch relativ schnell auffallen...

Ein Funktion zum Speichern von Daten "show" zu nennen ist eine extrem schräge Namensgebung...

Gruß, noisefloor
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Was würden Sie vorschlagen was für eine Namensgebung für eine funktion ?
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Also an den fehlenden Klammer hat es wohl nicht gelegen .

Hier ist der Fehler Code .

Code: Alles auswählen


"/home/torsten/PycharmProjects/lamda test/.venv/bin/python" /home/torsten/PycharmProjects/lamda test/main.py 
Exception in Tkinter callback
Traceback (most recent call last):
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/connection_cext.py", line 365, in _open_connection
    self._cmysql.connect(**cnx_kwargs)
_mysql_connector.MySQLInterfaceError: Access denied for user 'root'@'localhost' (using password: YES)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3.12/tkinter/__init__.py", line 1967, in __call__
    return self.func(*args)
           ^^^^^^^^^^^^^^^^
  File "/home/torsten/PycharmProjects/lamda test/main.py", line 54, in <lambda>
    self.btn = tk.Button(self,text="Absenden",command=lambda: show(name.get()) )
                                                              ^^^^^^^^^^^^^^^^
  File "/home/torsten/PycharmProjects/lamda test/main.py", line 11, in show
    conn = mysql.connector.connect(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/pooling.py", line 322, in connect
    return CMySQLConnection(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/connection_cext.py", line 153, in __init__
    self.connect(**kwargs)
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/abstracts.py", line 1529, in connect
    self._open_connection()
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/connection_cext.py", line 370, in _open_connection
    raise get_mysql_exception(
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Benutzeravatar
noisefloor
User
Beiträge: 4149
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

äh... da steht doch explizit, was nicht stimmt: die DB gibt dir keinen Zugang. Kann u.a. daran liegen, dass die Zugangsdaten nicht stimmen. Der Fehler hat nichts mit deiner Programmierung oder Python selber zu tun.

Bzgl. der Namensgebung: z.B. "add_bank_to_database". Halt irgendwas, was die Tätigkeit explizit beschreibt, die in der Funktion ausgeführt wird.

Gruß, noiseflooor
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Danke , muss ich nachher mal schauen .
Danke für den Hinweis
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Kann es vielleicht auch daran liegen da ich ja 4 Felder in der Datenbank habe aber wollte zum Testen nur ein Feld nutzen sprich Kontoname
Benutzeravatar
sparrow
User
Beiträge: 4502
Registriert: Freitag 17. April 2009, 10:28

Nein.
Wie bereits gesagt ist die Fehlermeldung eindeutig: du kannst dich nicht an der Datenbank anmelden. Benutzername oder Passwort stimmen nicht.
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

So, habe mal geschaut, das Passwort war falsch. Habe die Verbindung getestet an einem neuen Projekt beziehungsweise einfach mal geschaut, ob die Verbindung hergestellt wird und es funktioniert.

Aber trotzdem kommt Fehler auf zwecks Funktion. Habe langsam keinen Durchblick mehr.

Weil er weißt auf den Fehler zur Zeile mit den enty wo die lamda Funktion ist

Code: Alles auswählen

"/home/torsten/PycharmProjects/lamda test/.venv/bin/python" /home/torsten/PycharmProjects/lamda test/main.py 
Exception in Tkinter callback
Traceback (most recent call last):
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/connection_cext.py", line 755, in cmd_query
    self._cmysql.query(
_mysql_connector.MySQLInterfaceError: 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

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3.12/tkinter/__init__.py", line 1967, in __call__
    return self.func(*args)
           ^^^^^^^^^^^^^^^^
  File "/home/torsten/PycharmProjects/lamda test/main.py", line 60, in <lambda>
    self.btn = tk.Button(self,text="Absenden",command=lambda: show(name.get()) )
                                                              ^^^^^^^^^^^^^^^^
  File "/home/torsten/PycharmProjects/lamda test/main.py", line 23, in show
    my_cursor.execute("INSERT INTO bank (kontoname) VALUES (%s", [name])
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/cursor_cext.py", line 351, in execute
    self._connection.cmd_query(
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/opentelemetry/context_propagation.py", line 97, in wrapper
    return method(cnx, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/connection_cext.py", line 763, in cmd_query
    raise get_mysql_exception(
mysql.connector.errors.ProgrammingError: 1064 (42000): 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
Benutzeravatar
__blackjack__
User
Beiträge: 13919
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TorstenVoelker: Da fehlt halt immer noch die Klammer in der SQL-Anweisung.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Hallo lieber @blackhawk , das habe ich auch gesehen von Hinweis vom &noisefloor .
Nur wenn ich da eine eine 2 ) hinpack kommt es zu einen weitern Fehler sprich er markiert mir die Stelle rot .
Benutzeravatar
noisefloor
User
Beiträge: 4149
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@all: ich glaube inzwischen, dass das plattes rumgetrolle ist und kein reales Problem. So doof kann man sich von Natur aus gar nicht anstellen. Ich bin raus.

Gruß, noisefloor
Sirius3
User
Beiträge: 18216
Registriert: Sonntag 21. Oktober 2012, 17:20

@TorstenVoelker: offensichtlich hast Du etwas geändert, was zu einem weiteren Fehler führt. Beim Programmieren muß man sehr sorgfältig sein und alles bis auf das letzte Zeichen lesen.
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

noisefloor hat geschrieben: Donnerstag 27. Februar 2025, 06:55 Hallo,

@all: ich glaube inzwischen, dass das plattes rumgetrolle ist und kein reales Problem. So doof kann man sich von Natur aus gar nicht anstellen. Ich bin raus.

Gruß, noisefloor
Genau ich bin doof weil ich alles versuche und teste und immer der gleiche Fehler kommt und man selber Zweifelt woran es liegen kann . Dann ist man Ebend doof .
Benutzeravatar
__blackjack__
User
Beiträge: 13919
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TorstenVoelker: Wenn dann ein anderer Fehler (oder doch der gleiche?) kommt, dann ist da halt noch ein anderer Fehler drin, oder Du hast den mit der Klammern nicht behoben, weil Du die Klammer beispielsweise an der falschen Stelle eingefügt hast.

Der Trollverdacht kommt halt auf weil Du *wieder* nicht den Code und die Fehlermeldung gezeigt hast, wo doch langsam klar sein müsste das man dann halt nichts anderes sagen kann als „dann wird da wohl ein Fehler drin sein“. Woher sollen wir denn wissen was genau Du versucht hast und was genau der Fehler ist, der dabei aufgetreten ist? Und es ist auch nicht so wirklich erkennbar, dass Du die Fehlermeldungen mal liest und versuchst zu verstehen.

Edit: IDEs unterstreichen in aller Regel nicht nur falsche Stellen, sondern auch da gibt es einen Text dazu *was* da falsch ist.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Ich habe ja heute frei und sitze seit 1 std dran und habe alles versucht und stehe da wie doof .

Wäre ja lieb wenn einer es mal selber versucht es zum laufen zu bringen .

Ihr dürft mir nicht böse sein aber wenn man alles versucht und die Klammer woanders hinsetzt und schaut es kommt dein Fehler eine Klammer Zuviel dann kommt man ins Zweifeln .
Benutzeravatar
__blackjack__
User
Beiträge: 13919
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TorstenVoelker: Wenn man die Klammer richtig setzt, und eine entsprechende Datenbank aufgesetzt hat, dann funktioniert es. Wobei es das wahrscheinlich nicht sollte, weil das sehr wahrscheinlich bedeuten würde, dass im `bank`-Datensatz Felder NULL sein dürfen, die nicht NULL sein dürfen sollten.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Werde es nachher noch mal versuchen, mal auf der Datenbank zu schauen Anna Pfalz noch mal Skript prüfen ansonsten gebe ich auf und lass es einfach
Sirius3
User
Beiträge: 18216
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich kenne keine Anna Pfalz, und niemand hier kennt Deinen aktuellen Code und die Fehlermeldung dazu.
Wenn Du keine Hilfe willst, ist das Deine Entscheidung; wenn Du Hilfe willst, dann solltest Du mit den nötigen Informationen rüber rücken.
TorstenVoelker
User
Beiträge: 124
Registriert: Mittwoch 5. Februar 2025, 12:55

Also habe es nochmals versucht und es kommt immer dieser Fehler .

Code: Alles auswählen

"/home/torsten/PycharmProjects/lamda test/.venv/bin/python" /home/torsten/PycharmProjects/lamda test/main.py 
Exception in Tkinter callback
Traceback (most recent call last):
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/connection_cext.py", line 755, in cmd_query
    self._cmysql.query(
_mysql_connector.MySQLInterfaceError: 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

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3.12/tkinter/__init__.py", line 1967, in __call__
    return self.func(*args)
           ^^^^^^^^^^^^^^^^
  File "/home/torsten/PycharmProjects/lamda test/main.py", line 56, in <lambda>
    self.btn = tk.Button(self,text="Absenden",command=lambda: show(name.get()) )
                                                              ^^^^^^^^^^^^^^^^
  File "/home/torsten/PycharmProjects/lamda test/main.py", line 21, in show
    my_cursor.execute("INSERT INTO bank (kontoname) VALUES (%s", [name])
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/cursor_cext.py", line 351, in execute
    self._connection.cmd_query(
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/opentelemetry/context_propagation.py", line 97, in wrapper
    return method(cnx, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/torsten/PycharmProjects/lamda test/.venv/lib/python3.12/site-packages/mysql/connector/connection_cext.py", line 763, in cmd_query
    raise get_mysql_exception(
mysql.connector.errors.ProgrammingError: 1064 (42000): 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

Antworten