Mysql
 sql >> база данни >  >> RDS >> Mysql

mysqldb python избягва? или %s?

За да бъдем по-конкретни... cursor.execute() методът приема незадължителен аргумент, който съдържа стойности, които трябва да бъдат цитирани и интерполирани в SQL шаблона/изявлението. Това НЕ се прави с обикновен % оператор! cursor.execute(some_sql, some_params) е НЕ същото като cursor.execute(some_sql % some_params)

Python DB-API указва, че всеки съвместим драйвер/модул трябва да предоставя .paramstyle атрибут, който може да бъде всеки от 'qmark', 'numeric', 'named', 'format' или 'pyformat' ... така че на теория човек може да адаптира вашите SQL заявки низове към поддържаната форма чрез интроспекция и малко мърдане. Това все пак трябва да е по-безопасно, отколкото да се опитвате сами да цитирате и интерполирате стойности във вашите SQL низове.

Беше ми особено забавно да прочета Предупреждение Никога, никога, НИКОГА не използвайте Python низ ... интерполация ... Дори и под прицел. в документите на PsycoPG.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Получаване на процент от Count(*) към броя на всички елементи в GROUP BY

  2. Как да използвам Enums в Scala Slick?

  3. Как да вмъкна изображение в mysql база данни (таблица)?

  4. MYSQL заявка между две времеви марки

  5. Съхраняване на социалноосигурителни номера