2016-09-11 20 views
0

SQLで挿入クエリを実行しようとしています。成功したが、データベースにレコードがないことを示します。ここに私のコードはpython SQLクエリの挿入で空の行が表示される

conn = MySQLdb.connect("localhost",self.user,"",self.db) 
cursor = conn.cursor() 
id_val = 123456; 
path_val = "/homes/error.path" 
host_val = "123.23.45.64" 
time_val = 7 
cursor.execute("INSERT INTO success (id,path,hostname,time_elapsed) VALUES (%s,%s,%s,%s)", (id_val, path_val,host_val,time_val)) 

print "query executed" 
rows = cursor.fetchall() 
print rows 

だ、これは以下の

query executed 
() 

を出力し、それは私にエラーを与えていないが、データベースが空であるように思われます。私はmysqlコンソールで自分のSQLクエリを試しました。次のコマンドを実行しました。

INSERT INTO success (id,path,hostname,time_elapsed) 
VALUES (1,'sometext','hosttext',4); 

これは正常に動作します。データベースにデータが入力されたことがわかります。

mysql> SELECT * FROM success LIMIT 5; 
+----+----------+----------+--------------+ 
| id | path  | hostname | time_elapsed | 
+----+----------+----------+--------------+ 
| 1 | sometext | hosttext |   4 | 
+----+----------+----------+--------------+ 

ですから、SQLクエリコマンドが正しいと推測しています。なぜ私のcursor.executeが応答していないのか分かりません。誰かが私を正しい方向に向けることができますか?バグを理解できないようだ。おかげ

答えて

1

は、あなたのINSERTのレコードを送信した後、データベースに変更をコミットする必要があります

cursor.execute("INSERT INTO success (id,path,hostname,time_elapsed) VALUES (%s,%s,%s,%s)", (id_val, path_val,host_val,time_val)) 
conn.commit() 

あなたがデータを読みたいときに、あなたは通訳を通じて行ったように、あなたは最初のクエリを送信する必要があります。あなたがデータをフェッチする前に

ので、SELECTコマンドを実行します。

cursor.execute("SELECT * FROM success") 
for row in cursor: 
    print(row) 
+0

素晴らしいとそのworking..thanksたくさん:

cursor.execute("SELECT * FROM success") rows = cursor.fetchall() print rows 

あなたはニシキヘビそれをしたい場合は

。 – Shadid

関連する問題