DB-API execute params, am I missing something?
Teguh Iskanto
tiskanto at gmail.com
Fri May 29 01:52:46 EDT 2009
On Fri, May 29, 2009 at 3:21 PM, Dennis Lee Bieber <wlfraed at ix.netcom.com>wrote:
>
> This won't work as the DB-API is going to quote the parameter, and
> the final result would be '%'whatever'%'. Essentially, you must put the
> wildcard marker on the actual parameter before feeding it to the API.
> --
> Wulfraed Dennis Lee Bieber KD6MOG
> wlfraed at ix.netcom.com wulfraed at bestiaria.com
> HTTP://wlfraed.home.netcom.com/
> (Bestiaria Support Staff: web-asst at bestiaria.com)
> HTTP://www.bestiaria.com/
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
it works for me :)
mysql> select * from test_table ;
+------+------+------+
| a | b | c |
+------+------+------+
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
| 4 | 4 | 4 |
| 5 | 5 | 5 |
| 6 | 6 | 6 |
| 7 | 7 | 7 |
| 8 | 8 | 8 |
| 9 | 9 | 9 |
| 10 | 10 | 10 |
| 11 | 11 | 11 |
| 12 | 12 | 12 |
| 13 | 13 | 13 |
| 14 | 14 | 14 |
| 15 | 15 | 15 |
| 16 | 16 | 16 |
| 17 | 17 | 17 |
| 18 | 18 | 18 |
| 19 | 19 | 19 |
| 20 | 20 | 20 |
| 21 | 21 | 21 |
| 22 | 22 | 22 |
| 23 | 23 | 23 |
| 24 | 24 | 24 |
| 25 | 25 | 25 |
| 26 | 26 | 26 |
| 27 | 27 | 27 |
| 28 | 28 | 28 |
| 29 | 29 | 29 |
+------+------+------+
30 rows in set (0.00 sec)
>>> import MySQLdb
>>> conn = MySQLdb.connect (host='localhost', user='root', passwd='crappy',
db='testme')
>>> input_crap = "0"
>>> conn.query("select * from test_table where a like '%%%s%%'" %input_crap)
>>> result = conn.store_result()
>>> rows = result.num_rows()
>>> cols = result.num_fields()
>>> data = result.fetch_row(rows,1)
>>> print data
({'a': '0', 'c': '0', 'b': '0'}, {'a': '10', 'c': '10', 'b': '10'}, {'a':
'20', 'c': '20', 'b': '20'})
>>>
HTH
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20090529/20b6ee54/attachment-0001.html>
More information about the Python-list
mailing list