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

Грешка в Python MySQLdb - какво причинява това

Вашият код за създаване на заявката не се опитва да цитира стойностите на низа:

cmd = "INSERT INTO resulttest (category, value, timestamp) VALUES (" + key + ", " + str(value) + ", " + str(timestamp) + ")"

Вижте SQL израза, който сте отпечатали:

INSERT INTO resulttest (category, value, timestamp) VALUES (composed, 2, 1343186948.8)

„Категория“ не трябва ли да се цитира?

На първо място не трябва да съставяте SQL оператор с операции със низове. Ето как се случват уязвимостите при SQL инжектиране. Вместо това трябва да използвате заместители и да оставите библиотеката MySQL да се справи с тях:

c.execute(
    "INSERT INTO resulttest (category, value, timestamp) VALUES (?, ?, ?)", 
    (key, value, timestamp)
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разширението mysqli липсва, phpmyadmin не работи

  2. Миграция на ASP MVC MsSql към MySQL

  3. Как да напишете няколко колони в клауза с sqlalchemy

  4. MySQL разграничение между e и é (e acute) - УНИКАЛЕН индекс

  5. Как да покажа статистически данни за заявките към базата данни на сайта на Wordpress?