前駆:
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))
説明はここ