使用输入通过 pymysql 插入数据
Insert Data with pymysql using inputs
我正在处理数据库,但在使用 pymysql 插入某些值时遇到问题
cur.execute("""INSERT INTO orders (name, size, type, is_done) VALUES (%s, %s, %s, %s)"""
% (name, size, type, is_done))
其中 name、size 和 type 是字符串,is_done 是一个布尔值
它给了我典型的错误 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
,所以我认为问题是 '
,但我该如何解决它?
编辑
我还应该补充一点,名称值是从 MySQL DB
中检索的
我找到了问题所在,而不是
cur.execute("""INSERT INTO orders (name, size, type, is_done)
VALUES (%s, %s, %s, %s)"""
% (name, size, type, is_done))
我应该做的
cur.execute("""INSERT INTO orders (name, size, type, is_done)
VALUES ("%s", "%s", "%s", "%s")"""
% (name, size, type, is_done))
如果您没有为 id 输入值。你有一个错误。试试这个查询。
cur.execute("insert into orders values(%s, %s, %s, %s, %s)", (None, name, size, type, is_done))
“%s”和 "None" 用于 id 列。这个查询运行我的代码。
注意:不要忘记 commit()
当前接受的解决方案有一个 SQL injection 漏洞。您不应该使用 %
运算符格式化字符串 - 只需将参数元组作为第二个参数传递,库将处理其余部分。
cur.execute("INSERT INTO orders (name, size, type, is_done) VALUES (%s, %s, %s, %s)",
(name, size, type, is_done))
另见 and pymysql documentation。
我正在处理数据库,但在使用 pymysql 插入某些值时遇到问题
cur.execute("""INSERT INTO orders (name, size, type, is_done) VALUES (%s, %s, %s, %s)"""
% (name, size, type, is_done))
其中 name、size 和 type 是字符串,is_done 是一个布尔值
它给了我典型的错误 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
,所以我认为问题是 '
,但我该如何解决它?
编辑
我还应该补充一点,名称值是从 MySQL DB
中检索的我找到了问题所在,而不是
cur.execute("""INSERT INTO orders (name, size, type, is_done)
VALUES (%s, %s, %s, %s)"""
% (name, size, type, is_done))
我应该做的
cur.execute("""INSERT INTO orders (name, size, type, is_done)
VALUES ("%s", "%s", "%s", "%s")"""
% (name, size, type, is_done))
如果您没有为 id 输入值。你有一个错误。试试这个查询。
cur.execute("insert into orders values(%s, %s, %s, %s, %s)", (None, name, size, type, is_done))
“%s”和 "None" 用于 id 列。这个查询运行我的代码。 注意:不要忘记 commit()
当前接受的解决方案有一个 SQL injection 漏洞。您不应该使用 %
运算符格式化字符串 - 只需将参数元组作为第二个参数传递,库将处理其余部分。
cur.execute("INSERT INTO orders (name, size, type, is_done) VALUES (%s, %s, %s, %s)",
(name, size, type, is_done))
另见