sql >> Database teknologi >  >> RDS >> Mysql

Python MySQLdb fejl - hvad forårsager dette

Din kode til at oprette forespørgslen forsøger ikke at citere strengværdierne:

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

Se på den SQL-sætning, du udskrev:

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

Bør "kategori" ikke citeres?

Du bør ikke komponere en SQL-sætning med strengoperationer i første omgang. Sådan opstår SQL-injektionssårbarheder. I stedet bør du bruge pladsholdere og lade MySQL-biblioteket håndtere dem:

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


  1. Find længden af ​​den længste række i en kolonne i orakel

  2. Rails 3 ActiveRecord:UNION

  3. Ting at vide om databasedrevne websteder

  4. hvordan man ændrer tidsstempelformat i mysql