我正在學習使用Python和MySQL。相同的查詢在Mysql和PyMySQL之間的工作方式不同。例如:在MySQL控制檯中,我有一個名爲「頁面」的表格使用PyMySQL時的語法無效
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?
感謝
是你應該使用參數化查詢格式的字符串。但是,如果您查看不起作用的語句,請考慮如何使用雙引號。你基本上是關閉你的字符串 - 使用單引號代替那裏,它也會工作... – sgeddes
是的,我看到,這樣的菜鳥錯誤 –