以下は、pymysql を使用してデータを挿入し、自動的に生成された ID を返すサンプル コードです。
```python
import pymysql
# 连接数据库
conn = pymysql.connect(
host='localhost',
user='root',
password='123456',
db='your_database',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
try:
# 创建游标对象
with conn.cursor() as cursor:
# 执行插入语句
sql = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
values = ('value1', 'value2')
cursor.execute(sql, values)
# 获取自动生成的id
inserted_id = cursor.lastrowid
# 提交事务
conn.commit()
# 输出插入的id
print(inserted_id)
finally:
# 关闭数据库连接
conn.close()
```
コードでは、まず `pymysql.connect` 関数を通じてデータベースに接続し、次に SQL ステートメントの実行に使用できるカーソル オブジェクト `cursor` を作成します。
次に、`cursor.execute` メソッドを使用して挿入ステートメントを実行します。ここで、`%s` はプレースホルダーであり、SQL インジェクション攻撃を防ぐために次のパラメーターに置き換えることができます。`values` は、挿入されるデータ値を含むタプルです。
次に、`cursor.lastrowid` を使用して自動生成された ID を取得します。このメソッドは、INSERT ステートメントの実行後にのみ、最新の挿入データ ID を取得できます。
最後に、データが実際にデータベースに挿入されるように、`conn.commit()` を使用してトランザクションをコミットすることを忘れないでください。データベース接続を閉じてリソースを解放します。
注:
- 実際に使用する場合、`host`、`user`、`password`、`db`は実際のデータベース情報に変更する必要があります。
- insert ステートメント内の `%s` はプレースホルダーであり、実際の状況に応じて変更できます。複数のプレースホルダーがある場合は、複数のパラメーターを渡すことができ、パラメーターの順序はプレースホルダーの順序と一致している必要があります。
・insert文の`column1`、`column2`は挿入する列名であり、状況に応じて変更可能です。
- insert ステートメントの実行後、実際にデータがデータベースに挿入されるように、必ず `conn.commit()` を使用してトランザクションをコミットしてください。そうしないと、挿入されたデータは保存されません。