반응형
Python에서 준비된 문으로 SQL을 사용하려고합니다. Python에는 자체 메커니즘이 없으므로 SQL을 직접 사용하려고합니다.
sql = "PREPARE stmt FROM ' INSERT INTO {} (date, time, tag, power) VALUES (?, ?, ?, ?)'".format(self.db_scan_table)
self.cursor.execute(sql)
그런 다음 나중에 루프에서 :
sql = "EXECUTE stmt USING \'{}\', \'{}\', {}, {};".format(d, t, tag, power)
self.cursor.execute(sql)
그리고 루프에서 다음을 얻습니다.
MySQL Error [1064]: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''2014-12-25', '12:31:46', 88000000, -6.64' at line 1
무슨 일이야?
해결 방법
귀하의 경우에는 다음과 같습니다.
sql = ('INSERT INTO {} (date, time, tag, power) VALUES '
'(%s, %s, %s, %s)'.format(self.db_scan_table))
그리고 나중에 "루프에서"다음과 같이 입력합니다.
self.cursor.execute(sql, (d, t, tag, power))
추가 문자열 형식 지정없이- MySQLdb
모듈은 사용자를 대신하여 부분을 준비하고 실행합니다 (불필요한 작업 반복 등을 피하기 위해 캐시 할 수 있음).
언급 한 "루프"의 특성에 따라 .execute_many
에 대한 단일 호출 (두 번째 인수로 튜플 시퀀스 사용)이 전체를 대신 할 수 있음을 고려하십시오. 루프 (데이터를 DB에 삽입하는 것 이상으로 해당 루프 내에서 더 많은 처리가 필요하지 않은 경우).
참조 페이지 https://stackoverflow.com/questions/27649759
반응형
'MySql' 카테고리의 다른 글
MySQL ID 목록을 사용하여 여러 행 업데이트 (0) | 2020.11.25 |
---|---|
MySQL 데이터베이스 필드를 1 씩 증가 (0) | 2020.11.25 |
MySQL 모델 파일의 비 객체에서 멤버 함수 num_rows () 호출 (0) | 2020.11.25 |
MySQL 두 번째 그룹에서 선택 그룹을 사용하고 MySQL의 데이터 소스로 테이블을 업데이트하는 방법은 무엇입니까? (0) | 2020.11.25 |
MySQL 3 개월 이상의 mysql select 레코드 (0) | 2020.11.25 |
댓글