0

データベースに設定したテーブルに行を挿入しようとしています。

私のコード:

cursor.execute("""INSERT INTO scan (prefix, code_id, answer, station) VALUES(%s, %s, %s, %s, timestamp, comport)""",[(prefix, code_id, answer, station)])

「[]」の内容が気に入らないというエラーが表示されます。

「%s」がどのように機能するのか完全には理解していません。私は多くの例を試しましたが、すべて失敗しました。

この例はhttp://mysql-python.sourceforge.net/MySQLdb.htmlから入手しました

4

3 に答える 3

2

2組の括弧の中にパラメータがあるのはなぜですか?2番目の引数は、クエリの4つの項目と一致するように、4つの項目を含むシーケンスである必要があり%sます。代わりに、1つのアイテムを含むリストを指定しました。そのアイテムは、4つのアイテムを含むシーケンスです。

代わりに、次を試してください。

cursor.execute("""INSERT INTO scan (prefix, code_id, answer, station) VALUES(%s, %s, %s, %s, timestamp, comport)""",(prefix, code_id, answer, station))
于 2011-06-30T20:37:18.597 に答える
0
cursor.execute('INSERT INTO scan (prefix, code_id, answer, station) VALUES("%s", "%s", "%s", "%s")' %(prefix, code_id, answer, station))

""アラウンドを見逃した場合、%sつまり値%sでこれの代わりに単に使用した場合、エラーが発生する可能性があり"%s"ます。

于 2011-06-30T20:40:09.987 に答える
-1

Pythonの新しい'format'文字列メソッドを使用できます。

cursor.execute("""INSERT INTO scan (prefix, code_id, answer, station) VALUES({}, {}, {}, {}, timestamp, comport)""".format(prefix, code_id, answer, station))

「{0}"」、「{1}」などのパラメータに番号を付けることもできます。これは、Pythonのバージョンによっては必要になる場合があります(2.6はすでに番号付けのないパラメーターをサポートしていると思います)。

これの使用に関するリファレンスについては、http://docs.python.org/library/string.html#format-examplesを確認してください

于 2011-06-30T20:32:23.393 に答える