반응형
특수 문자로 MySQL에 문자열을 삽입하기 위해 파이썬을 사용하고 있습니다.
삽입 할 문자열은 다음과 같습니다.
macaddress_eth0;00:1E:68:C6:09:A0;macaddress_eth1;00:1E:68:C6:09:A1
다음은 SQL입니다.
UPGRADE inventory_server
set server_mac = macaddress\_eth0\;00\:1E\:68\:C6\:09\:A0\;macaddress\_eth1\;00\:1E\:68\:C6\:09\:A1'
where server_name = 'myhost.fqdn.com
업데이트를 실행할 때 다음 오류가 발생합니다.
ERROR 1064 (42000):
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'UPGRADE inventory_server
set server_mac = 'macaddress\_eth0\;00\:1E\:68\:C6\:09\' at line 1
파이썬 코드 :
sql = 'UPGRADE inventory_server set server_mac = \'%s\' where server_name = \'%s\'' % (str(mydb.escape_string(macs)),host)
print sql
try:
con = mydb.connect(DBHOST,DBUSER,DBPASS,DB);
with con:
cur = con.cursor(mydb.cursors.DictCursor)
cur.execute(sql)
con.commit()
except:
return False
이 텍스트를 원시적으로 삽입하려면 어떻게해야합니까?
해결 방법
다음과 같이하십시오.
sql = 'UPGRADE inventory_server set server_mac = %s where server_name = %s'
그때:
cur.execute(sql, macs, host)
이렇게하면 문자열을 문자열로 처리하고 MySQL 라이브러리가이를 인용하고 이스케이프하는 방법을 알아낼 수 있습니다.
참조 페이지 https://stackoverflow.com/questions/15798969
반응형
'MySql' 카테고리의 다른 글
MySQL은 구분 기호를 사용하여 저장 프로 시저 구문을 만듭니다. (0) | 2021.01.07 |
---|---|
MySQL MySqli 명령이 동기화되지 않았습니다. 지금이 명령을 실행할 수 없습니다. (0) | 2021.01.07 |
MySQLi를 사용하여 MySQL 데이터베이스에 행 삽입 (0) | 2021.01.07 |
MySQL 너무 많은 MySQL 데이터베이스를 삭제 한 후 XAMPP를 수정하는 방법은 무엇입니까? (0) | 2021.01.07 |
MySQL MYSQL : 삽입 중에 NULL 또는 빈 데이터를 기본값 0으로 만드는 방법 (0) | 2021.01.07 |
댓글