python - MySQL Python 连接器 - 更新不更新
问题描述
我在 Python 中使用 MySQL,但我的更新函数没有更新行,我无法理解消息错误。
def atualizaCartelaTabela(campo,valor,jogador):
try:
connection = mysql.connector.connect(host='localhost',
user='root',
password='root',
database='modular')
cursor = connection.cursor()
sql = """UPDATE Cartela
SET %s = %s
WHERE PONTOS = %s"""
atualiza = (campo,valor,jogador)
cursor.execute(sql,atualiza)
except Error as e:
print("Erro ao atualizar campos da tabela Cartela ->", e)
finally:
if connection.is_connected():
cursor.close()
connection.close()
def atualizaCartelaTabela(campo,valor,jogador):
try:
connection = mysql.connector.connect(host='localhost',
user='root',
password='root',
database='modular')
cursor = connection.cursor()
sql = """UPDATE Cartela
SET %s = %s
WHERE PONTOS = %s"""
atualiza = (campo,valor,jogador)
cursor.execute(sql,atualiza)
except Error as e:
print("Erro ao atualizar campos da tabela Cartela ->", e)
finally:
if connection.is_connected():
cursor.close()
connection.close()
atualizaCartelaTabela('Um',2,'Jogador 1')
我得到的错误:
1064 (42000): 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 ''Um' = 2 WHERE PONTOS = 'Jogador 1'' 附近使用正确的语法
而且,这是用于创建表(工作)的函数:
def criaTabelaCartela():
try:
connection = mysql.connector.connect(host='localhost',
user='root',
password='root',
database='modular')
cursor = connection.cursor()
cursor.execute("CREATE TABLE Cartela (PONTOS VARCHAR(10), Um int(2), Dois int(1), Tres int(1), Quatro int(1), Cinco int(1), Seis int(1), Full int(1), SequenciaBaixa int(1), Trinca int(1), Quadra int(1), SequenciaAlta int(1), Yahtzee int(1), PontuaçãoFinal int(1))")
connection.commit()
except Error as e:
print("Erro ao criar tabela Cartela ->", e)
finally:
if connection.is_connected():
cursor.close()
connection.close()
解决方案
我猜这int - 2
是这里的问题。试试这个:
做你的SQL-query
这个:
sql = """
UPDATE Cartela
SET %s = CAST(%s AS int)
WHERE PONTOS = %s
"""
在你调用该方法的地方atualizaCartelaTabela
使它成为:
atualizaCartelaTabela('Um','2','Jogador 1')
推荐阅读
- java - 在 Android Studio 中运行我的代码时出现顶级声明错误
- asp.net-mvc - asp.net mvc 360°媒体整合
- python - selenium.common.exceptions.WebDriverException:消息:未知错误:无法使用 ChromeDriver 使用 Selenium Python 创建 Chrome 进程
- symfony - Symfony 4.4.2 - 带有 TokenStorageInterface 的 EventListener 使调试栏显示“加载 Web 调试工具栏时发生错误”。
- ios - 有没有人致力于将带有 Watch OS1 的 iOS 应用程序迁移到 Watch OS2 或更高版本,从而在 iPhone 和 Watch 之间共享数据
- python-3.x - 我们如何真正将 PyPDF2 链接到不同版本的 Python?
- php - 表单成功后没有重定向的Jquery ajax setTimeout?
- oracle - MV 刷新组 - 刷新错误:ORA-00942:表或视图不存在
- python - 使用 Gridsearch 为回归模型选择最佳参数
- r - 在函数中创建函数