我們在對數據庫進行添加信息時可能會遇到如下錯誤:
Column count doesn't match value count at row 1
該錯誤的意思是傳入表的字段數和values值的個數不一樣
我總結了一下,主要有3個易錯點:
1.要傳入表中的字段數和values后面的值的個數不相等。
eg:一個表中有如下6個字段:

我們想插入一行數據,這行數據會傳入id_card、passwd兩個字段。(name、problem、answer可以為空)
sql = "insert into user(id_card, passwd) values({}, '{}', '{}');".format(a, b, c)
要傳入表user的是id_card和passwd字段,但是在values后面你卻給了他a, b, c三個值。應該對應的只給兩個值。
2.values的值類型與表中定義的字段類型不相符
比如有以下代碼:
sql = "insert into user(id_card, passwd) values({}, '{}';".format(127, '111')
表中我定義的id_card是字符串類型,但是這里傳入的是整型。不相符。
另外,多說一句:這里的values值的類型與傳入的參數類型無關。
比如:values({})這是一個整型,values('{}')這是一個字符串類型
類型區別的重點在與values中的{}是否被單引號括起來,如果括起來了就是字符串,沒有就是整型。而與format()中參數類型無關。
3.注意逗號,括號,分號都要用美式的不要不注意寫成中文的了!!!!!!!
我這次就是這個錯誤找了30分鍾,還以為是代碼,字段等原因,結果不是!!!!!!
