pymysql.err.InternalError: (1054, "Unknown column 'string1' in 'field list'")错误

try:
    for i in range(5):
        sql_2="insert into hello(id,name,class,age) values({},{},{},{})".format(i,"string{}".format(i), i+1,  str(i*i))
        curs.execute(sql_2)
        conn.commit()
except:
    conn.rollback()
    print(traceback.print_exc())
curs.close()

我所用的是python37,一开始用上面的写法测试向mysql数据库里面插入数据的时候出现pymysql.err.InternalError: (1054, "Unknown column 'string1' in 'field list'")的报错,然后在另一篇文章看到几乎一样的问题,下面给出连接以示尊重
https://blog.csdn.net/fk103/article/details/80139284,这个链接提到了一种解决原理,对sql语句里面的占位符加引号

其实这个问题的错误大致上是由于区分分不了列,在mysql语句的语法里面,具体点说是这个mysql插入型的语法里面,你的替代符需要区别于列,测试了一下数字不区别没事,但这是因为在mysql语法里面

INSERT INTO hello VALUES (12,'小明','hello world','18')可以不区分,具体什么原因我也讲不通他是这么个设定,不过我提供一种思路,

遇到这样的sql语法错误可以将你出现错误的的sql语法去mysql环境推荐sqlyog里面测试,看语法问题在哪里

try:
    for i in range(5):
        sql_2="insert into hello(id,name,class,age) values('{}','{}','{}','{}')".format(i,"string{}".format(i), i+1,  str(i*i))
        curs.execute(sql_2)
        conn.commit()
except:
    conn.rollback()
    print(traceback.print_exc())
curs.close()
conn.close()

猜你喜欢

转载自blog.csdn.net/qq_42395490/article/details/81041722