下面是使用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`函数连接到数据库,然后创建游标对象`cursor`,利用该游标对象可以执行SQL语句。
接着使用`cursor.execute`方法执行插入语句,其中的`%s`是占位符,可以用后面的参数替换,防止SQL注入攻击。`values`是一个元组,包含了要插入的数据值。
然后使用`cursor.lastrowid`获取自动生成的id,该方法只在执行插入语句后才能获取到插入的最新数据id。
最后记得要使用`conn.commit()`提交事务,使数据真正插入到数据库中。关闭数据库连接以释放资源。
注意事项:
- 在实际使用时,要将`host`、`user`、`password`、`db`更改为实际的数据库信息。
- 插入语句中的`%s`为占位符,可以根据实际情况修改。如果有多个占位符,可以传入多个参数,参数的顺序要与占位符的顺序一致。
- 插入语句中的`column1`和`column2`为要插入的列名,可以根据实际情况修改。
- 执行插入语句后,一定要使用`conn.commit()`提交事务,使数据真正插入到数据库中。否则插入的数据不会被保存。