2016-06-20 11 views
-1

以前にpythonスクリプトを使用して作成したテーブルにデータを挿入しようとしています。ここに私が実行しようとしているコードです。私は日付と同様にテーブルにデータを挿入したい。Pythonを使用するとPostgreSQLがデータを挿入するエラー

date_today = dt.date.today() 

conn = psycopg2.connect(host = serverip, port = port, database = database, user = uid, password = pwd) 
cursor = conn.cursor() 

cursor.execute("INSERT INTO My_TABLE (Date, Class, Total_students, failed_students, Percent_passed_students) VALUES (date_today, 'Class Name', int1, int2, int3)") 

print "Data Inserted successfully" 
conn.commit() 
conn.close() 

これは私の仕事から見るエラーです。私はここで何が欠けていますか?

psycopg2.ProgrammingError: column "date_today" does not exist 

は、私は次のクエリで別のジョブを使用してテーブルを作成:

cursor.execute("""CREATE TABLE MY_TABL(Date date, Lob varchar(30), Total_Students int, failed_students int, Percent_passed_students int)""") 

を、表は、上記の5つの列を使用して作成されます。

+1

変数は魔法の文字列に置換されません。 – tkausl

+0

'values(...')に識別子ではなく値を渡す必要があります。 –

答えて

3

このライン:

cursor.execute("INSERT INTO My_TABLE (Date, Class, Total_students, failed_students, Percent_passed_students) VALUES (date_today, 'Class Name', int1, int2, int3)") 

は、動的にデータベースに値を挿入するために間違った方法です。ここで


は、機能と正しい例を示します

cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3)) 

そして、あなたの場合には、それを適用する...

cursor.execute("INSERT INTO My_TABLE VALUES (%s, %s, %s, %s, %s)", (date_today, 'Class Name', int1, int2, int3)) 
関連する問題