Variablen und Sqlite

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Trubinial Guru
User
Beiträge: 117
Registriert: Dienstag 7. April 2009, 13:40

Hallo Alle,

ich brauche mal wieder Hilfe! Bin noch neu in Sqlite und Python und brauche dringend Hilfe.

Undzwar will ich bei einer select Anweisung Variablen benutzen.
Ich könnte es mir so vorstellen, aber es funktioniert ja nicht:

Code: Alles auswählen

    name_der_person=peter
    sql = """
    SELECT  adresse, name, telefonnummer
    FROM adressen
    WHERE name==name_der_person
    """
    cur = conn.cursor()
    cur.execute(sql)
Ich hoffe sowas wurde nicht schon mal gefragt und ihr könnt mir helfen!
Viele Grüße
Jonny
amiganer68
User
Beiträge: 18
Registriert: Mittwoch 1. Juli 2009, 14:20

Trubinial Guru hat geschrieben:Hallo Alle,

ich brauche mal wieder Hilfe! Bin noch neu in Sqlite und Python und brauche dringend Hilfe.

Undzwar will ich bei einer select Anweisung Variablen benutzen.
Ich könnte es mir so vorstellen, aber es funktioniert ja nicht:

Code: Alles auswählen

    name_der_person=peter
    sql = """
    SELECT  adresse, name, telefonnummer
    FROM adressen
    WHERE name==name_der_person
    """
    cur = conn.cursor()
    cur.execute(sql)
Ich hoffe sowas wurde nicht schon mal gefragt und ihr könnt mir helfen!
Viele Grüße
Jonny
Da "name_der_person" in den Quote's steht, wird es nicht ersetz, was Du aber wohl willst. Ich würde es so machen:
sql = ('SELECT adresse, name, telefonnummer FROM adressen WHERE name= ?' % name_der_person)

In SQL steht auch (meines Wissens) "=" für iste gleich nicht "==" wie in Python.

Christian
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

amiganer68 hat geschrieben: Da "name_der_person" in den Quote's steht, wird es nicht ersetz, was Du aber wohl willst. Ich würde es so machen:
sql = ('SELECT adresse, name, telefonnummer FROM adressen WHERE name= ?' % name_der_person)
Das ist ein Weg, den man bei "normalen" Strings gehen kann. Genau in diesem Falle hier ist das aber eben eine sehr schlechte Lösung.

Hier steht imho alles, was man dazu braucht:
[wiki]Parametrisierte SQL-Queries[/wiki]
Trubinial Guru
User
Beiträge: 117
Registriert: Dienstag 7. April 2009, 13:40

Hey vielen Dank für die Hilfe ihr beiden. Mit dem Link war es kein Problem! Vielen Dank!
Antworten