MySQLdb Python %d と %s を挿入する 質問する

MySQLdb Python %d と %s を挿入する 質問する

前駆:

MySQL Table created via:
CREATE TABLE table(Id INT PRIMARY KEY NOT NULL, Param1 VARCHAR(50))

関数:

.execute("INSERT INTO table VALUES(%d,%s)", (int(id), string)

出力:

TypeError: %d format: a number is required, not a str

ここで何が起こっているのか、またはなぜコマンドを実行できないのかわかりません。これは Python で MySQLdb を使用しています。.executeカーソル オブジェクトで実行されます。

編集:

質問:Python MySQLdb の問題 (TypeError: %d 形式: 文字列ではなく数値が必要です)すべてのフィールドでを使用する必要があると書かれています%s。これはなぜでしょうか? このコマンドが機能するのはなぜでしょうか?

.execute("INSERT INTO table VALUES(%s,%s)", (int(id), string)

ベストアンサー1

クエリの実行中はクエリ全体を文字列形式にする必要があるため、これ%sを使用する必要があります...

クエリが実行された後、整数値が保持されます。

だからあなたのセリフはこうあるべきです。

.execute("INSERT INTO table VALUES(%s,%s)", (int(id), string))

説明はここ

おすすめ記事