Как исправить ошибки запроса - PullRequest
0 голосов
/ 10 июля 2019

Я хочу поместить в базу данных mySQL рандомизированные (позже будут заменены действительными числами) числа и временную метку.

Я запускаю 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 голосов
/ 10 июля 2019

Проблема с вашим форматом даты. В 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()
0 голосов
/ 10 июля 2019

Мне кажется, вам нужны кавычки вокруг каждого% s, например, "% s"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...