Escaping confusion with Python 3 + MySQL

Ian Kelly ian.g.kelly at gmail.com
Sun Mar 26 10:48:07 EDT 2017


On Sun, Mar 26, 2017 at 8:24 AM, Νίκος Βέργος <me.on.nzt at gmail.com> wrote:
> Τη Κυριακή, 26 Μαρτίου 2017 - 5:19:27 μ.μ. UTC+3, ο χρήστης Ian έγραψε:
>
>> You need to change the placeholders back. The poster who told you to
>> replace them was misinformed.
>
> okey altered them back to
>
> cur.execute('''UPDATE visitors SET (pagesID, host, ref, location, useros, browser, visits) VALUES (%s, %s, %s, %s, %s, %s, %s) WHERE host LIKE "%%s%" ''',
>                                                                                                                                                                                                                                                                                         (pID, domain, ref, location, useros, browser, lastvisit, domain) )
>
> but now the problem is how to exact;y type the Where HOST like "%%%"
>
> I MEAN HOW TO DIFFERENTIATE '%S' FROM LITERAL '%' character.

The database wrapper won't do substitution into the middle of a string
like that. Either concatenate the literal %'s on in the SQL statement
or add them to the string before you pass it in, i.e. '%' + domain +
'%' or '%%%s%%' % domain or '%{}%'.format(domain).


More information about the Python-list mailing list