在pycharm中用代码向mysql中已建好的表里填数据的问题

在pycharm中用代码向mysql中已建好的表里填数据的问题。我是建了一个叫user的表,建表的代码如下

d = 'create table user(用户名 varchar(20),密码 char(20) ,真实姓名 varchar(20))';
cursor.execute(d)

然后我想在pycharm中用代码向这张叫做user的表里填入一些数据,就用了以下代码

d ="insert into user(用户名,密码,真实姓名) values({},{},'{}');"
真实姓名=['张三','里斯','里斯']
for j in range(len(真实姓名)):
    cursor.execute(a.format(j,真实姓名[j]))

我想知道为什么我写了这些代码后为什么我mysql workbench里打开这张叫user的表,表里面却没有数据呢?
图片如下

img

img


实在是不知道为什么会这样了

试一试这样:

d = "insert into user(用户名,密码,真实姓名) values('{}','{}','{}')"
真实姓名 = ['张三', '里斯', '王五']
for name in 真实姓名:
    cursor.execute(d.format(name, '123456', name))



新增修改数据最后要调用db.commit()方法

img

这个a改成d

img


或者 create table 前加一下 DROP TABLE IF EXISTS user; 如果表存在就删掉重新建,或者create table 那些只执行一次,之后每次运行不再执行了

发现有3个问题

  1. 变量d才是插入语句;
  2. 插入语句要完整的信息;
  3. 执行语句后,要提交.

举个例子:

# 添加一条数据数据
def insertdata1():
    insert_emp_sql = "insert into user(用户名,密码,真实姓名) values ('123','123','张三')"
    # 执行语句
    cursor.execute(insert_emp_sql)
    # 提交数据
    conn.commit()

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    我可以提供以下代码作为插入数据的示例,建议你检查一下数据库连接、表名和字段名称是否正确。另外,你可以使用commit()方法提交插入操作,否则数据将不能被正确地写入数据库中。如果你已经做到了这些,但仍然无法插入数据,可以考虑输出错误信息来进行更深入的排查。

    import pymysql
    
    # 建立数据库连接
    conn = pymysql.connect(
        host='localhost',
        user='root', password='password',
        database='database_name',
        charset='utf8mb4'
    )
    
    # 创建一个游标
    cursor = conn.cursor()
    
    # 执行插入数据的SQL语句
    sql = "INSERT INTO `user` (`id`, `name`, `age`, `gender`) VALUES (NULL, '张三', 18, '男')"
    cursor.execute(sql)
    
    # 提交插入操作
    conn.commit()
    
    # 关闭游标和数据库连接
    cursor.close()
    conn.close()
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^