sql >> Databáze >  >> RDS >> Mysql

Chyba Python MySQLdb - co to způsobuje

Váš kód pro vytvoření dotazu se nepokouší citovat hodnoty řetězce:

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

Podívejte se na vytištěný příkaz SQL:

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

Neměla by být uvedena „kategorie“?

V první řadě byste neměli skládat příkaz SQL s operacemi s řetězci. Takto dochází k chybám zabezpečení vkládání SQL. Místo toho byste měli používat zástupné symboly a nechat knihovnu MySQL, aby si s nimi poradila:

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


  1. PHP MYSQL vložit data v arabském jazyce

  2. Proč se autoinkrement MySQL zvyšuje u neúspěšných vložení?

  3. vytvoření dynamického vložení php do funkce mysql?

  4. Instalace webového serveru ve FreeBSD 6.0 s Apache 2.2, MySQL 5.0 a PHP 5 – část 3