如何解决查询错误

时间:2019-07-10 13:17:06

标签: mysql python-3.x database automation data-entry

我想在MySQL数据库中放置随机数(以后将用实数代替)和时间戳。

我正在PC上运行SQL Server,如果我将命令复制并粘贴到SQL Terminal中,则该命令可以正常运行,但使用python则会生成错误

import pymysql
import random
import time
import datetime

def dynamic_data_entry():
    date = "10.07.19"
    Temperatur = str(random.randint(0, 100))
    Feuchtigkeit = str(random.randint(20, 80))
    Operation = 'INSERT INTO messwerte_sensor1 (Time, Temperatur, Luftfeuchtigkeit) VALUES (%s, %s, %s);' , (date, Temperatur, Feuchtigkeit)
    db = pymysql.connect("127.0.0.1","root","Root","tests")
    cursor = db.cursor()
    cursor.execute(Operation)
    data = cursor.fetchone
    print(data)
    db.close()

dynamic_data_entry()

2 个答案:

答案 0 :(得分:0)

我想你需要在每个%s周围加上引号,例如“%s”

答案 1 :(得分:0)

问题出在您的日期格式上。在mysql中,标准日期格式为aaaa-mm-dd,因此您需要进行更改。另外,我修改您的代码以使用准备好的语句:

import pymysql
import random
import time
import datetime

def dynamic_data_entry():
    date = "2019-07-10"
    Temperatur = str(random.randint(0, 100))
    Feuchtigkeit = str(random.randint(20, 80))
    Operation = 'INSERT INTO messwerte_sensor1 (Time, Temperatur, Luftfeuchtigkeit) VALUES (%s, %s, %s);' 
    db = pymysql.connect("127.0.0.1","root","Root","tests")
    cursor = db.cursor()
    cursor.execute(Operation,(date, Temperatur, Feuchtigkeit))
    data = cursor.fetchone()
    print(data)
    db.close()

dynamic_data_entry()