programing

Python 3의 문에 SQL 삽입을 위한 구문 형식 지정

iphone6s 2023. 9. 19. 20:55
반응형

Python 3의 문에 SQL 삽입을 위한 구문 형식 지정

필드에 설치한 센서에서 Date, Time, Temperature 값을 삽입하려고 합니다.나는 모든 계산과 변수가 의도한 대로 작동하지만 sql 문은 실패합니다.인수 형식의 대략적인 형식은 다음과 같습니다.

  arg=('2019-07-21', '07:00:00', 29.323330729166656)

내 SQL 테이블의 형식은 다음과 같습니다.

날짜(DATE), 시간(TIME), 온도(DUBLE)

그러나 MariaDB의 표준 1064 오류로 인해 문에 삽입이 실패합니다. "(1064, "SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 1행의 ':00:00,29.323330729166656' 근처에서 사용할 올바른 구문을 확인하십시오.")

SQL 문은 다음과 같습니다.

for row in arg:
        print(row)
        cursor.execute("INSERT INTO flirtest (Date, Time, Temperature) VALUES (%s,%s,%s)" % row)
db.commit()

이 오류는 처음 두 변수 주변의 인용문 때문이라고 생각합니다.하지만 솔직히 잘 모르겠어요.python에서 이러한 문을 어떻게 적절하게 포맷해야 합니까?견적을 포함해야 합니까, 포함하지 말아야 합니까?

1. 당신의 경우 arg는 투플이기 때문에 3번을 거칩니다. 1라운드에서 행은 '2019-07-21', 2라운드에서 행은 '07:00'입니다.

"[ ]"을 붙여 목록으로 설정하면 모든 것이 있는 라운드는 1개뿐입니다 :)

2. 그러면 당신 것도 효과가 있겠지만, 이것을 시도해 보세요.

arg=[('2019-07-21', '07:00:00', 29.323330729166656)]

for row in arg:
        print(row)
        cursor.execute("INSERT INTO flirtest (Date, Time, Temperature) VALUES (%s,%s,%s)", row)
db.commit()

하지만 100% 확실하지는 않습니다, 왜냐하면 저는 mysql을 사용하기 때문입니다 :)

python은 모르지만, 이게 더 가까울 것 같습니다.

arg=('2019-07-21', '07:00:00', 29.323330729166656,)
cursor.execute("INSERT INTO flirtest (Date, Time, Temperature) VALUES (%s,%s,%s)", %row)
db.commit()

언급URL : https://stackoverflow.com/questions/57365650/syntax-formatting-for-sql-insert-into-statements-in-python-3

반응형