You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python-MySQL报错:第1行列数与值数量不匹配,求排查

解决MySQL插入错误:Column count doesn't match value count at row 1

嘿,这个错误我太熟了,一眼就揪出问题所在——你的SQL插入语句里列名的分隔符写错啦!

看你这段代码里的核心SQL部分:

cursor.execute("Insert into users(name,email.username,password) values(%s,%s,%s,%s)",(name,email,username,password))

注意到email.username这里了吗?你把分隔列名的逗号写成了点号!这就导致MySQL把email.username当成单个列名,而不是email和username两个独立列。这样一来,你声明的列数变成了3个(name、email.username、password),但你传入了4个值(name、email、username、password),列数和值数对不上,自然就触发这个错误了。

修正后的代码

把点号改成逗号就行,调整后的完整代码如下:

name = form.name.data 
email = form.email.data 
username = form.username.data 
password = sha256_crypt.encrypt(form.password.data) 

cursor = mysql.connection.cursor()
# 这里把email.username修正为email, username
cursor.execute("INSERT INTO users(name, email, username, password) VALUES(%s, %s, %s, %s)", 
               (name, email, username, password))
mysql.connection.commit()
cursor.close()

额外小建议

  • 写SQL时尽量把列名和对应的值对齐排版,这类拼写错误会更容易被发现
  • 建议用大写书写SQL关键字(比如INSERT INTO、VALUES),和变量名做区分,代码可读性会更好

内容的提问来源于stack exchange,提问作者Ayd谋n Vardar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:16:52