Като разширение на отговора на Bruno, вашата MySQL клиентска библиотека може да поддържа всеки от няколко различни формата за указване на наименувани параметри. От PEP 249 (DB-API) можете да напишете вашите заявки като:
"qmark"
>>> cursor.execute("SELECT spam FROM eggs WHERE lumberjack = ?", (lumberjack,))
"цифров"
>>> cursor.execute("SELECT spam FROM eggs WHERE lumberjack = :1", (lumberjack,))
'на име'
>>> cursor.execute("SELECT spam FROM eggs WHERE lumberjack = :jack", {'jack': lumberjack})
"формат"
>>> cursor.execute("SELECT spam FROM eggs WHERE lumberjack = %s", (lumberjack,))
'pyformat'
>>> cursor.execute("SELECT spam FROM eggs WHERE lumberjack = %(jack)s", {'jack': lumberjack})
Можете да видите коя клиентска библиотека поддържа, като погледнете променливата на ниво модул paramstyle
:
>>> clientlibrary.paramstyle
'pyformat'
Всяка от горните опции трябва да направи правилното нещо по отношение на обработката на вашите евентуално несигурни данни. Както посочи Бруно, моля, никога не се опитвайте сами да вмъквате параметри. Често използваните клиентски библиотеки са много по-добри в правилната обработка на данни, отколкото ние, обикновените смъртни, някога ще бъдем.
person
Kirk Strauser
schedule
28.10.2011