sql >> Database >  >> RDS >> Mysql

Python MySQLdb-fout - wat veroorzaakt dit?

Uw code om de query te maken, probeert de tekenreekswaarden niet te citeren:

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

Kijk naar de SQL-instructie die u hebt afgedrukt:

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

Moet "categorie" niet worden geciteerd?

U zou in de eerste plaats geen SQL-instructie moeten opstellen met tekenreeksbewerkingen. Dit is hoe kwetsbaarheden voor SQL-injectie ontstaan. Gebruik in plaats daarvan plaatsaanduidingen en laat de MySQL-bibliotheek ermee omgaan:

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


  1. Hoe een opgeslagen procedure in MySQL te maken

  2. V$SQL_SHARED_CURSOR TOP_LEVEL_RPI_CURSOR

  3. WAMP upgraden naar MySQL 5.5?

  4. mysql5.58 unstart server in mac os 10.6.5