使用Python向MySQL表插入数据时遇SQL语法错误求助
问题解决:Python插入MySQL数据时的语法错误
问题根源
你的SQL语句中使用了MySQL的保留关键字index作为字段名,直接使用会触发语法错误。MySQL有一系列内置保留字(如index、name),不能直接作为表名/字段名这类标识符使用,必须用反引号(`)包裹才能正常识别。
修改后的代码
将SQL语句中的保留字字段名用反引号包裹,同时修正插入操作后的无效遍历逻辑:
a1 = input('Index : ') b1 = input('Name : ') c1 = input('job : ') # 用反引号包裹保留字字段名,避免语法冲突 sql3 = 'INSERT INTO data(`index`, `name`, `job`) VALUES(%s, %s, %s)' val3 = [a1, b1, c1] cursor.execute(sql3, val3) mydb.commit() # INSERT操作无结果集,通过rowcount验证插入成功 print(f"成功插入 {cursor.rowcount} 条数据")
额外注意事项
- 你的错误信息中出现了
phone_no,但代码里写的是job,如果实际表结构字段是phone_no,请同步修改SQL语句中的字段名。 - 插入操作执行后,
cursor不会返回结果集,原代码中的for x in cursor: print(x)不会输出任何内容,用cursor.rowcount或后续执行SELECT查询更适合验证结果。 - 编写SQL时尽量避免使用MySQL保留字作为标识符,从根源减少这类语法问题。
内容的提问来源于stack exchange,提问作者Thakshaya
相关产品推荐
相关产品推荐

