python通过mysql.connector向mysql中插入数据时出现1064 (42000)语法错误解决方案

python通过mysql.connector向mysql中插入数据时出现1064 (42000)语法错误解决方案

首先在这里声明一下我用的是python3.8.0版本,mysql版本为5.5.47,mysql.connector库版本为2.2.9。

1、要连接的mysql数据库为woaini,执行insert插入语句
代码如下:

import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="root",
    database="woaini"
)
mycursor = mydb.cursor()
mycursor.execute("INSERT INTO teacher (name) VALUES (%s)", ('一花一世界'))

mydb.commit()  # 数据表内容有更新,必须使用到该语句

print(mycursor.rowcount, "记录插入成功。")

报出的错误如下:

Traceback (most recent call last):
  File "D:/MyProgramming/python3/hello.py", line 808, in <module>
    mycursor.execute("INSERT INTO teacher (name) VALUES (%s)", ('一花一世界'))
  File "D:\Application\python3\lib\site-packages\mysql\connector\cursor.py", line 551, in execute
    self._handle_result(self._connection.cmd_query(stmt))
  File "D:\Application\python3\lib\site-packages\mysql\connector\connection.py", line 490, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
  File "D:\Application\python3\lib\site-packages\mysql\connector\connection.py", line 395, in _handle_result
    raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s)' at line 1

从错误提示中我们可以看出,出在了语法上的错误,在%s前后出现了语法错误。
这时我们尝试使用新的输出格式化语句.format()
代码如下:

mycursor1.execute("insert into teacher (name) values('{}')".format(val))

执行成功
在这里插入图片描述

感谢你的阅读,希望对你问题的解决有所帮助。如有疑问或不清楚的地方,欢迎评论。共同进步,加油。
在这里插入图片描述

Python插入MySQL数据可以使用MySQL Connector模块,具体步骤如下: 1. 安装MySQL Connector模块。可以使用pip命令在命令行安装:`pip install mysql-connector-python` 2. 导入MySQL Connector模块。在Python代码使用`import mysql.connector` 3. 建立MySQL数据库连接。使用`mysql.connector.connect()`函数连接数据库。需要提供数据库的主机名、用户名、密码、数据库名等信息。 4. 创建游标对象。使用`cursor()`方法创建游标对象,用于执行SQL语句。 5. 编写SQL语句。使用`INSERT INTO`语句插入数据,语法如下: `INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...)` 6. 执行SQL语句。使用游标对象的`execute()`方法执行SQL语句。 7. 提交事务。使用`commit()`方法提交事务,将数据插入数据库。 下面是一个简单的Python代码示例,用于向MySQL数据库的students表插入一条数据: ```python import mysql.connector # 建立数据库连接 mydb = mysql.connector.connect( host="localhost", user="root", password="password", database="test_db" ) # 创建游标对象 mycursor = mydb.cursor() # 编写SQL语句 sql = "INSERT INTO students (name, age, gender) VALUES (%s, %s, %s)" val = ("John", 18, "Male") # 执行SQL语句 mycursor.execute(sql, val) # 提交事务 mydb.commit() print(mycursor.rowcount, "record inserted.") ``` 注意:在实际应用,需要根据实际情况修改主机名、用户名、密码、数据库名、表名、列名和插入数据等信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值