[Python] query con MySQL
Daniele Varrazzo
piro a develer.com
Sab 2 Feb 2008 11:36:54 CET
Crash Override ha scritto:
> Buongiorno.
> Dopo aver letto sulla documentazione la giusta sintassi per inserire una
> stringa 'esterna' in una query MySQL con Python, scrivo (in un'oppurtuna
> funzione):
Ciao,
aiuterebbe avere un po' più di contesto, ricordatene quando chiedi una mano :)
Manda un paio di righe in più della funzione di cui parli: non solo la stringa
SQL ma anche come la usi, perché il problema è (anche) lì.
> '''select qualcosa from qualcosaltro WHERE qualcosa = % (nomeStringa) s'''
di sicuro gli spazi in '% (nomeStringa) s' non servono. Questo non viene
riconosciuto come segnaposto. Scrivi '%(nomeStringa)s'.
> dove nomeStringa lo prendo da un EvtText di una TextCtrl. Ecco... la
> query non dà rsultati! Il nome (nomeStringa) esiste perchè se lo scrivo
> io all'interno della query funziona! Inoltre ho provato a far stampare
> in un wx.dialog il testo della TextCtrl: è tutto 'regolare'. Il problema
> qualè? La TextCtrl aggiunge qualcosa che devo 'opportunamete' eliminare?
> Non mi sembra...
> La stringa è presa da una funzione EvtText(evt) come evt.GetString().
Cos'è nomeStringa? Il nome di una variabile locale? Dovrebbe essere la chiave
di un dizionario passato come secondo argomento al metodo execute() del
cursore. Per intenderci da te ci si aspetta:
cnn = MySQLdb.connect(dsn)
cur = cnn.cursor()
sql = '''select qualcosa from qualcosaltro
WHERE qualcosa = %(nomeStringa)s'''
args = { 'nomeStringa': 'mio valore' }
cur.execute(sql, args)
for record in cur:
...
--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
More information about the Python
mailing list