2016-04-03 5 views
1

Ich möchte den Wert der Variablen (Temp, Brummen) in meine Tabelle Sensoren mit mysql-Datenbank (db Name: Projekt) einfügen. Ich benutze Ubuntu 14.04, und die Verbindung wird zwischen Python und MySQL hergestellt, aber ich kann den Wert der Variablen nicht setzen. Also jede Hilfe ist willkommen, und danke.Wie fügt man Werte von Variablen mit Python 2.7 in mysql ein?

Das ist mein Skript Python:

from random import * 
import socket 
import sys 
import mysql.connector 
from datetime import datetime 

temp = randrange(10, 31, 2) 
hum = randrange(300, 701, 2) 

print temp 
print hum 

conn=mysql.connector.connect(user='root',password='12345',host='localhost',database='projet'); 
mycursor=conn.cursor(); 
mycursor.execute("""INSERT INTO sensors VALUES('$datetime','$temp','$hum')"""); 
conn.commit() 
mycursor.execute("SELECT * FROM sensors") 

Das ist mein Tisch ist, wo Sie die Variablen Temp und Brummen und ihre Werte nicht finden können:

This is my table where you can find the variables temp and hum and not their values

+0

** WARNUNG **: Bitte seien Sie vorsichtig, [richtig entkommen] (http: // bobby-Tabellen. com/python.html) diese Werte. Das direkte Einfügen von Daten ist sehr gefährlich. – tadman

Antwort

1

Das ist, weil Sie nicht vorbei die Variablenwerte in die Abfrage. Übergeben sie mit der Abfrage in die execute() Methode:

mycursor.execute(""" 
    INSERT INTO 
     sensors 
    VALUES 
     ('$datetime', %s, %s)""", (temp, hum)) 

wo %s sind Platzhalter für die Abfrageparameter. Beachten Sie, dass der Datenbanktreiber die Konvertierung des Parametertyps und das automatische Leeren übernimmt.

Was die $datetime, wenn Sie ein aktuelles Datum/Datumzeit in dieser Spalte haben wollen, schauen Sie in NOW() oder CURDATE() finden Sie unter:

0

aber ich kann 't setzen den Wert der Variablen

Angenommen Daten-Zeit ein String ist und der Rest ganze Zahlen sind

Versuchen

"INSERT INTO sensors VALUES('%s','%d','%d')", %(date, temp, num) 

im execute Methode

+0

Sind Sie sicher, dass die Syntax gültig ist? – alecxe

Verwandte Themen