python - 使用 python 3.4 的 MySQL 更新查询示例

标签 python mysql python-3.x

如何使用 python 3.4 编写 MySQL 更新查询? 我使用 pymysql 作为连接器,我想更新托管在本地主机上的数据库中的表。

我写了一小段代码,但显示错误。可能是因为它与 python 3.4 不兼容。

sql1 = ("""
          UPDATE field_data_comment_body SET  Sentiments=%s
            WHERE comment_body_value=%s """, (para3,res))
    cursor.execute(sql1)

执行时出现错误

Traceback (most recent call last):
  File "F:\The Script\new.py", line 44, in <module>
    cursor.execute(sql1)
  File "C:\Python34\lib\site-packages\pymysql-0.6.6-py3.4.egg\pymysql\cursors.py", line 134, in execute
    result = self._query(query)
  File "C:\Python34\lib\site-packages\pymysql-0.6.6-py3.4.egg\pymysql\cursors.py", line 282, in _query
    conn.query(q)
  File "C:\Python34\lib\site-packages\pymysql-0.6.6-py3.4.egg\pymysql\connections.py", line 767, in query
    self._execute_command(COMMAND.COM_QUERY, sql)
  File "C:\Python34\lib\site-packages\pymysql-0.6.6-py3.4.egg\pymysql\connections.py", line 957, in _execute_command
    self._write_bytes(prelude + sql[:chunk_size-1])
TypeError: can't concat bytes to tuple

类型错误:无法将字节连接到元组

所以请帮我找出错误!!

最佳答案

Vaultah 的回答非常好,但我个人更喜欢将查询字符串与数据分开。对发生在我身上的事情似乎更清楚了。

sql1 = "UPDATE field_data_comment_body SET Sentiments=%s WHERE comment_body_value=%s"
data = (para3, res)
cursor.execute(sql1, data)

关于python - 使用 python 3.4 的 MySQL 更新查询示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29349694/

相关文章:

python-3.x - "Command ' 在 MiniConda 中导入 ' not found, but can be installed with"

python - 为什么这两个数组完全相同?

python - python 中的魔术方法和 __str__ 函数

python - 生成器作为函数参数

mysql - 按月所有周的 SQL 平均值

sql-server - 需要学校数据库设计

python - 如何将Python程序转换为可执行文件[Python 3.4.2]

c++ - 在 C++ Windows 应用程序中嵌入和扩展的简单解释器

mysql - Django - 需要安装 mysqlclient 错误 : mysqlclient 1. 3.13 或更新版本;你有 0.9.3

python - 如何在没有 "while True"循环的情况下绘制这个对数?