繁体   English   中英

在 Python 中使用占位符时出现 MySQL 语法错误

[英]MySQL syntax error while working with placeholders in Python

我想用一列创建表名,但出现此错误:

mysql.connector.errors.ProgrammingError: 1064 (42000): 你的 SQL 语法有错误; 检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的 ''test' 'int')' 附近使用的正确语法

我正在尝试使用的代码:

table_name = 'test'
create_table = f'CREATE TABLE {table_name} (%s %s)'
cursor.execute(create_table,(headers[0], data_types[0],))

我试过手动输入表名、列名和数据类型,但结果相同。 我已经看到很多关于这个问题的解决方案,但没有一个解决这个问题

您只是无法绑定查询的这一部分。 绑定参数主要用于替换查询中的字面量,而不是其中的随机部分。 在幕后,您的 RDBMS 必须能够在不查看绑定参数值的情况下准备查询。

在这种情况下,您需要字符串连接:

table_name = 'test'
create_table = f'CREATE TABLE {table_name} ({headers[0]} {data_types[0]})';
cursor.execute(create_table);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM