programing

mysql-client를 사용하여 따옴표 '를 mariaDB에 삽입하는 방법은?

testmans 2023. 10. 27. 21:47
반응형

mysql-client를 사용하여 따옴표 '를 mariaDB에 삽입하는 방법은?

mariaDB(Ver 15.1 Distribution 10.0.17-MariaDB, osx10.10(x86_64)용) 및mysqlclient==1.3.6.

저는 단지 varchar 필드에 문자열을 삽입하고 싶습니다.

import MySQLdb
import json

conn = MySQLdb.connect(
    host='localhost',
    port=3306,
    user='root',
    passwd='',
    db='ng')

cur = conn.cursor()

cur.execute(INSERT INTO `current_table` (`id`, `name`) VALUES (NULL, '{name}');".format(name="Lily' dog"))

conn.commit()

하지만 항상 이런 오류가 있었습니다.

_mysql_exceptions.ProgrammingError: (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 's dog', NULL)' at line 1")

mysql-client로 따옴표를 삽입하려면 어떻게 해야 합니까?

Amadan의 의견에 따르면 bobby-table(SQL 주입 방지 사이트)에서 다음과 같이 제안합니다.

Python DB API를 사용하여 다음 작업을 수행하지 않습니다.

이런 식으로 하지 마십시오.

cmd = "update people set name='%s' where id='%s'" % (name, id)
curs.execute(cmd)

대신 다음 작업을 수행합니다.

cmd = "update people set name=%s where id=%s"
curs.execute(cmd, (name, id))

따라서 내 상황에서는 실행 행을 다음으로 수정합니다.

cmd = "INSERT INTO `current_table` (`id`, `name`) VALUES (NULL, %s);"
cur.execute(cmd, ("Lily's dog"))

이를 통해 따옴표로 연결되는 오류를 방지할 수 있습니다.

언급URL : https://stackoverflow.com/questions/32470451/how-to-intsert-quotation-mark-into-mariadb-using-mysql-client

반응형