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 문 구 를 실행 할 때 전 달 된 매개 변수 에 작은 따옴표 가 포함 되 어 있 는 문 제 를 해결 하 는 것 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시 기 를 바 랍 니 다.여러분 들 이 저 희 를 많이 지지 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기