【发布时间】:2017-08-21 19:06:38
【问题描述】:
我正在学习使用 Python 和 MySQL。相同的查询在 Mysql 和 PyMySQL 之间的工作方式不同。例如:在 MySQL 控制台中,我有一个名为“pages”的表
INSERT INTO pages (title,content) VALUES ("test title","test content")
这行得通。在 Python 中,我导入 PyMySQL,创建一个连接,然后输入 cursor = "cur"。当我跑步时:
cur.execute("INSERT INTO pages (title,content) VALUES ("test title","test content")")
.. 它会引发错误:语法无效。但是当我用占位符尝试这个时:
cur.execute("insert into pages (title,content) values (%s,%s)",("test title","test content"))
然后就可以了!所以我很困惑为什么相同的查询在 MySQL 中有效但在 python 中无效,这是否意味着我在使用 PyMySQL 时应该始终使用占位符?
谢谢
【问题讨论】:
-
是的,您应该使用参数化查询。但是,如果您查看不起作用的语句,请考虑如何使用双引号。你基本上是在关闭你的字符串——在那里使用单引号,它也可以工作......
-
是的,我明白了,这样的菜鸟错误
标签: mysql python-3.x pymysql