Python中的Python语法错误

时间:2014-08-04 12:19:23

标签: python mysql

这是我的剧本

 cur.execute("CREATE TABLE +dnes+ (Id INT PRIMARY KEY AUTO_INCREMENT, \
                 Name VARCHAR(25))")

我尝试将变量dnes放入此查询中。变量是字符串。 它不起作用。它说:

_mysql_exceptions.ProgrammingError: (1064, "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 '+dnes+ (Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))' at line 1")

我哪里错了?

1 个答案:

答案 0 :(得分:0)

您没有使用字符串连接; +是字符串的一部分,而不是Python语法。

您可能打算这样做:

cur.execute("CREATE TABLE " + dnes + " (Id INT PRIMARY KEY AUTO_INCREMENT, "
            "Name VARCHAR(25))")

您可以改为使用字符串格式:

cur.execute("CREATE TABLE {0} (Id INT PRIMARY KEY AUTO_INCREMENT, "
            "Name VARCHAR(25))".format(dnes))

如果您需要创建使用特殊字符或保留字的表名,或仅包含数字,则需要引用名称:

cur.execute("CREATE TABLE `{0}` (Id INT PRIMARY KEY AUTO_INCREMENT, "
            "Name VARCHAR(25))".format(dnes))

请参阅Schema Object Names documentation