.........
ant = raw_input("Welche Automarke? ")
print ant
qry1 = "SELECT id, name, typ, price FROM cars WHERE name LIKE "
# qry2 = "'%iat'"
qry2 = "'ant'"
cur.execute(qry1+qry2)
for a in cur:
print (a)
con.commit()
Wenn ich für qry2 "'%fiat'" fest einsetze, funntionierts.
Wie muss die Variable "ant" in der qry2 eingebaut werden?
Zuletzt geändert von Anonymous am Donnerstag 19. Juli 2012, 16:28, insgesamt 1-mal geändert.
Grund:Quelltext in Python-Code-Tags gesetzt.
@puba: Das hat erst einmal mit SQL nichts zu tun sondern wie man den einen Wert in eine Zeichenkette formatiert. Das sind Grundlagen zum Zeichenkettentyp. Arbeite dazu am besten mal das Tutorial in der Python-Dokumentation durch.
Wenn dann SQL mit ins Spiel kommt musst Du aufpassen das Du selbst keine Werte in SQL-Abfragen in Form von Zeichenketten hinein formatierst, sondern dass dem Datenbankmodul überlässt. Sonst können Anwender nämlich per SQL-Injection nahezu beliebigen Unsinn mit Deiner Datenbank anstellen. Zum Beispiel bei der Frage nach der Automarke ``'; DROP TABLE cars --`` eingeben und Dir damit die Tabelle löschen.
Um das zu verhindern setzt man im SQL Platzhalter für die Werte und gibt die beim `execute()`-Aufruf als zweites Argument an. Näheres in der Dokumentation des verwendeten DB-Moduls und dem PEP in dem die DB-API beschrieben wird.
Du solltest Dir das Abkürzen von Namen abgewöhnen.