conn = MySQLdb.connect(host=IP,user='john',passwd='ab2nng',db='mydb')
cursor = conn.cursor()
#this works.
cursor.execute("select * from crawl_log")
res = cursor.fetchall()
print res
#this doesn't work.
cursor.execute("insert into crawl_log(k, v) values(%s, %s)", ('test','test'))
なぜ機能しなかったのですか?エラーは印刷されず、何も印刷されませんINSERTクエリが機能しない理由を確認するにはどうすればよいですか?
mysqldbモジュールのドキュメントからは分かりにくいですが、cursor.execute( "crawl_log(k、v)の値( '%s'、 '%s')に挿入)のように、 "、( 'test'、 'test'))。 %sの構文はsprintf形式のように見えますが、これはテキスト置換であり、バインドされた変数ではないことを暗示しています...しかし、docはいずれの方法でも言いません。 –
データベースコードをデバッグするときに、データベースに対話モードで話すこと(つまり、データベースに直接SQLに直接入力すること、phpMyAdminなどを使用すること)が役立つことがあります。これは、SQLが間違っているのか、違う。 –