[Python] query con MySQL

Crash Override crash.ovd a gmail.com
Sab 2 Feb 2008 12:54:18 CET


Daniele Varrazzo ha scritto:
> 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:
>          ...
>
>   
Ok, man mano faccio progressi da solo. Format requires a mapping, 
traduzione: "Imbecille stai usando una formattazione da dizionario per 
una stringa!"
Bene. Ma io non voglio usare un dizionario, voglio usare una semplice 
stringa! Devo cambiare il paramstyle? Come?

Sempre Grazie

P
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20080202/b7219ffe/attachment.htm 


More information about the Python mailing list