Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment paramétré une requête sqlite

5 réponses
Avatar
ookahh
Bonjour, je voudrais savoir comment Comment paramétré ma requête sqlite parce j'essaie ça ne marche pas voici:

myquery ="select nom,prenom from personne where nom ='%s'"
curseur.execute(myquery)
cur.commit()

ya t-il une erreur?

5 réponses

Avatar
yves
Le Fri, 18 Feb 2011 06:11:32 -0600, ookahh a écrit:

Bonjour,

Bonjour, je voudrais savoir comment Comment paramétré ma requête sqlite
parce j'essaie ça ne marche pas voici:

myquery ="select nom,prenom from personne where nom ='%s'"
curseur.execute(myquery)
cur.commit()

ya t-il une erreur?



Il faudrait mettre plus de code (la ligne avec connect, en particulier).
Sinon, là, sur une ligne, il y curseur., sur l'autre cur..
Le %s tout seul ne va pas non plus.

Cordialement,
--
Yves
Avatar
Laurent Pointal
ookahh wrote:

Bonjour, je voudrais savoir comment Comment paramétré ma requête sqlite
parce j'essaie ça ne marche pas voici:

myquery ="select nom,prenom from personne where nom ='%s'"
curseur.execute(myquery)
cur.commit()


curseur ou cur ? AMA code trop incomplet.

ya t-il une erreur?



As-tu lu un tout petit peu les docs (bon, en anglais, mais y'a pas mal
d'exemples de sources) ? Ce n'est pas à proprement parler une erreur, mais
une mauvaise façon de procéder:

http://docs.python.org/library/sqlite3.html

J'y lis:

# Never do this -- insecure!
symbol = 'IBM'
c.execute("... where symbol = '%s'" % symbol)

# Do this instead
t = (symbol,)
c.execute('select * from stocks where symbol=?', t)

# Larger example
for t in [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
('2006-04-05', 'BUY', 'MSOFT', 1000, 72.00),
('2006-04-06', 'SELL', 'IBM', 500, 53.00),
]:
c.execute('insert into stocks values (?,?,?,?,?)', t)


Bons développements.

A+
Laurent.
Avatar
Julien
c.execute("""SELECT id, station, airport, country FROM meteo_station
WHERE country LIKE "%s" """ % ("France"))

Ca devrait aller mieux.

J.H

On 18 fév, 13:11, ookahh wrote:
Bonjour, je voudrais savoir comment Comment paramétré ma requête sq lite parce
j'essaie ça ne marche pas voici:

 myquery ="select nom,prenom from personne where nom ='%s'"
 curseur.execute(myquery)
 cur.commit()

ya t-il une erreur?
Avatar
Laurent Pointal
Julien wrote:

c.execute("""SELECT id, station, airport, country FROM meteo_station
WHERE country LIKE "%s" """ % ("France"))

Ca devrait aller mieux.



Et ça fait une belle source d'injection SQL.
(cf http://fr.wikipedia.org/wiki/Injection_SQL )

Lecture de doc, adaptation ==>

c.execute("""SELECT id, station, airport, country FROM meteo_station WHERE
country LIKE ? """, "France")

Laissez faire les librairies d'accès SQL, elles ont les outils pour échapper
les caractères comme il faut.

Bis http://docs.python.org/library/sqlite3.html


A+
Laurent.
Avatar
Julien
Oui tu as tout à fait raison. J'ai lu en diagonale son problème
et à première vue, je pensais que c'était sur le LIKE qu'il
bloquait ...


On 20 fév, 13:56, Laurent Pointal wrote:
Julien wrote:
> c.execute("""SELECT id, station, airport, country FROM meteo_station
> WHERE country LIKE "%s" """ % ("France"))

> Ca devrait aller mieux.

Et ça fait une belle source d'injection SQL.
(cfhttp://fr.wikipedia.org/wiki/Injection_SQL)

Lecture de doc, adaptation ==>

c.execute("""SELECT id, station, airport, country FROM meteo_station WHER E
country LIKE ? """, "France")

Laissez faire les librairies d'accès SQL, elles ont les outils pour é chapper
les caractères comme il faut.

Bishttp://docs.python.org/library/sqlite3.html

A+
Laurent.