python 이 sql 문 구 를 실행 할 때 전 달 된 매개 변수 에 작은 따옴표 가 있 는 문 제 를 해결 합 니 다.
실행 문 구 는 다음 과 같 습 니 다.
sql_str = "INSERT INTO teacher(t_name, t_info, t_phone, t_email) VALUES\
(\'%s\', \'%s\', \'%s\', \'%s\')" % (result, result2, phoneNumber, Email)
cur.execute(sql_str)
프로그램 실행 후 오류 발생:ProgrammingError: (1064, "You have an error in your SQL syntax; '07,PRICAI'08,ACML'09 프로그램 위원회 주석/공동 주석 근처에 사용 할 수 있 는 올 바른 구문 에 대한 MySQL 서버 버 전에 해당 하 는 매 뉴 얼 을 확인 하고,라인 1 에서 ACM K'를 여러 번 맡 았 습 니 다")
result 2 인자 가 하나의 문자열 이기 때문에 문자열 에 작은 따옴표 가 나 타 났 습 니 다.my sql 문 구 는 영향 을 받 아 오류 가 발생 했 습 니 다.
원래 이 문 제 는 표준 적 인 해결 방안 이 있 을 것 이 라 고 생각 했 지만 인터넷 에서 조회 해 보 니 이 문제 에 부 딪 힌 사람 이 적지 않 지만 잘 해결 할 방법 이 없 었 다.
그래서 sql 문 구 를 작은 따옴표 로 읽 을 때 문자열 텍스트 의 작은 따옴표 임 을 알 수 있 기 때문에 매개 변수 중의 작은 따옴표 를\\로 바 꿀 수 있 습 니 다.그러면 다음 과 같은 순 조로 운 문 구 를 사용 할 수 있 습 니 다.
result 2=result 2.replace(","\\\")\#result 2 의'을\\로 대체 합 니 다.
PS:여기 서 따옴표 와 역 슬 래 쉬 의 사용 을 꼭 보 세 요:)
테스트 를 통 해 문 제 는 순조롭게 해결 되 었 다.
추가 지식:python 동적 생 성 변수 및 sql 구문 및 DF 표 전환
먼저 효과:
그림 과 같이 원래 이러한 DF 표 로 각 필드 의 제한 조건(A,B,C,D 는 모두 필드 이름)을 나타 낸다.
다음 절 차 를 통 해 sql 구문 으로 바 뀌 었 습 니 다.물론 역방향 작업 도 했 습 니 다.
for i in range(3):
locals()['f'+str(i)]=[]
import pandas as pd
import numpy as np
a = pd.DataFrame({"A":[">=",5],
"B":["<",6],
"C":["in",'("ha","he")'],
"D":["like","*q*"]
})
print(a)
b = []
for i in a.columns:
b.append(str(i)+" "+str(a[i][0])+" "+str(a[i][1]).strip())
c = " and ".join(b)
#b = b+str(i)+" "+str(a[i][0])+" "+str(a[i][1])+" "+"and"+" "
#print(c)
d = c.split(" and ")
for i in range(3):
locals()['f'+str(i)]=[]
for j in (range(len(d))):
f = d[j].split(" ")
locals()['f' + str(i)].append(f[i])
print(f0,f1,f2)
g = pd.DataFrame(columns=f0,data=[f1,f2])
print(g)
이상 python 이 sql 문 구 를 실행 할 때 전 달 된 매개 변수 에 작은 따옴표 가 포함 되 어 있 는 문 제 를 해결 하 는 것 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시 기 를 바 랍 니 다.여러분 들 이 저 희 를 많이 지지 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.