2016-04-03 12 views
1

mysqlデータベース(db name:project)を使って、変数(temp、hum)の値を私のテーブルセンサーに挿入したいと思います。私はUbuntu 14.04を使用しています。接続はPythonとMySQLの間で行われますが、変数の値を入れることはできません。だから、どんな助けも歓迎してくれてありがとう。これは、あなたが変数TEMPとハムではなく、それらの値を見つけることができる私のテーブルであるPython 2.7を使って変数の値をmysqlに挿入するには?

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") 

この

は私のスクリプトはPythonであなたが合格されていないためだ

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

+0

execute方法で

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

試し整数

あるある** WARNING **://ボビー・テーブル:[適切にエスケープ](HTTPに注意してください。 com/python.html)を参照してください。データを直接挿入するのは本当に危険です。 – tadman

答えて

1

変数値をクエリに追加します。 %sは、クエリパラメータのプレースホルダです

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

:​​メソッドにクエリを渡します。データベースドライバは、パラメータの型変換とエスケープ処理を自動的に処理することに注意してください。 $datetimeについては

、あなたは、このコラムでは、現在の日付/日時を持ってNOW()CURDATE()を使用してに見て、確認したい場合:

0

しかし、私はできます変数の値を入れない

データ時間文字列と残りは

+0

構文が有効ですか? – alecxe

関連する問題