MySQL과 함께 Python을 사용하는 방법을 배우고 있습니다. 동일한 쿼리는 Mysql과 PyMySQL 사이에서 다르게 작동합니다. 예 : MySQL 콘솔에서 "pages"라는 테이블을 가지고 있습니다.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에서 동일한 쿼리가 작동하지만 파이썬에서는 그렇지 않은 이유가 혼란 스럽습니다. PyMySQL을 사용할 때 항상 place holder를 사용해야한다는 것을 의미합니까? 당신이 밖으로 모든시키는 데이터베이스 드라이버 그림에서 자리 주위에 따옴표를 둘 필요가 없기 때문에
감사
모든
예는 매개 변수가있는 쿼리를 사용해야합니다 이러한 방식으로 문자열의 형식을 쉼표를 사용할 수 있습니다. 그러나 작동하지 않는 명령문을 보면 큰 따옴표를 어떻게 사용하고 있는지 생각해보십시오. 기본적으로 문자열을 닫고 있습니다. 대신에 작은 따옴표를 사용하면 효과가 있습니다. – sgeddes
그래, 신참 같은 실수가 있습니다. –