Hallo ich komme wieder mal nicht mehr weiter.
Ich habe eine Datenbank auf einem Webserver (MySQL) und möchte diese nun mit einem Pyhton script verbinden,
sodass ich Daten abfragen und hinzufügen kann.
Ich nutze das Modul MySQLdb aber mein Code funktioniert nicht und ich weiß nicht wieso.
Bitte um hilfe
Bisheriger Code:
import MySQLdb
import sys
try:
conn = MySQLdb.connect("localhost", "root", "", "nachrichten")
except:
prnt("Keine Verbindung zum Server möglich")
cur = conn.cursor()
eingabe = input()
#staff_first=raw_input("Whats your message ?")
cur.execute = ("INSERT INTO news (neues) VALUES(`" + eingabe + "`)")
er baut die Verbindung auf aber irgendetwas stimmt mit dem teil hinter VALUES nicht.
MySQLdb hilfe bei User Input
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
so funktioniert das auch nicht. Du musst den Wert, den du Einfügen willst, dem SQL-Query als Parameter mitgeben und _nicht_ selber den String zusammenstückeln. Da die offizielle MySQDB Doku nicht erreichtbar ist (was BTW schon mal stark gegen das MySQLDB Modul spricht), hier ein Link auf eine alternative Doku: https://www.tutorialspoint.com/python/p ... access.htm
Fehler Nr 2: keinen Spaghetticode schreiben und den User Input mit dem Code für den DB Zugriff mischen. Kapsle das ganze sinnvoll aufgeteilt in Funktionen.
Und keine nackten try...except verwenden. Damit fängst du _alle_ Fehler ab, auch Programmierfehler. Fehler fängt man gezielt ab.
Und wenn du schon einen Webserver hast - warum bastelst du dir nicht ein HTML-basiertes Frontend, um Daten in die DB zu schreiben? So oder so solltest du die Daten auch validieren, bevor du "irgendwas" in die DB schreibst.
Gruß, noisefloor
so funktioniert das auch nicht. Du musst den Wert, den du Einfügen willst, dem SQL-Query als Parameter mitgeben und _nicht_ selber den String zusammenstückeln. Da die offizielle MySQDB Doku nicht erreichtbar ist (was BTW schon mal stark gegen das MySQLDB Modul spricht), hier ein Link auf eine alternative Doku: https://www.tutorialspoint.com/python/p ... access.htm
Fehler Nr 2: keinen Spaghetticode schreiben und den User Input mit dem Code für den DB Zugriff mischen. Kapsle das ganze sinnvoll aufgeteilt in Funktionen.
Und keine nackten try...except verwenden. Damit fängst du _alle_ Fehler ab, auch Programmierfehler. Fehler fängt man gezielt ab.
Und wenn du schon einen Webserver hast - warum bastelst du dir nicht ein HTML-basiertes Frontend, um Daten in die DB zu schreiben? So oder so solltest du die Daten auch validieren, bevor du "irgendwas" in die DB schreibst.
Gruß, noisefloor
Hallo noisefloor,
Dieses Script ist praktisch mein "Testgebiet" also ist mir vorerst der Spaghetticode egal.
Wie soll ich der SQL-Query den Input als Parameter mitgeben ?
bin noch neu in der Programmierung und Python ist meine erste Sprache die ich lerne deshalb beschränkt sich mein HTML wissen auch noch
auf "Wie gestalte ich eine Webseite"
MfG tom
Dieses Script ist praktisch mein "Testgebiet" also ist mir vorerst der Spaghetticode egal.
Wie soll ich der SQL-Query den Input als Parameter mitgeben ?
bin noch neu in der Programmierung und Python ist meine erste Sprache die ich lerne deshalb beschränkt sich mein HTML wissen auch noch
auf "Wie gestalte ich eine Webseite"
MfG tom
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Gruß, noisefloor
Schlechter Programmierstil ist nie egal, auch nicht beim Hausgebrauch.Dieses Script ist praktisch mein "Testgebiet" also ist mir vorerst der Spaghetticode egal.
Das ist in Anleitung erklärt, die ich im vorherigen Post verlinkt habe... Musste halt mal ganz lesen.Wie soll ich der SQL-Query den Input als Parameter mitgeben ?
Gruß, noisefloor
- __blackjack__
- User
- Beiträge: 13112
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
I don't use the MySQL connector because official and Oracle doesn't necessarily mean it's the best, or even good. SQLAlchemy discourages its use: http://docs.sqlalchemy.org/en/latest/di ... ent-issues
Regarding the source code you gave: Under which circumstances does `connection.is_connected()` return `False` right after a successful `connect()` call?
`record` isn't a good name for a sequence of records — plural.
Edit: `is_connected()` isn't portable BTW — it's not part of the DB API V2.
Regarding the source code you gave: Under which circumstances does `connection.is_connected()` return `False` right after a successful `connect()` call?
`record` isn't a good name for a sequence of records — plural.
Edit: `is_connected()` isn't portable BTW — it's not part of the DB API V2.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman