찾다

 >  Q&A  >  본문

변수를 사용하여 Python에서 SQL 문을 실행하는 방법

<p>다음 Python 코드가 있습니다: </p> <pre class="brush:py;toolbar:false;">cursor.execute("INSERT INTO table VALUES var1, var2, var3,") </pre> <p>여기서 <code>var1</code>는 정수이고 <code>var2</code>는 문자열입니다. </p> <p>Python을 쿼리 텍스트의 일부로 만들지 않고 변수 이름을 어떻게 작성합니까? </p>
P粉725827686P粉725827686479일 전470

모든 응답(2)나는 대답할 것이다

  • P粉781235689

    P粉7812356892023-08-22 15:40:51

    다른 Python DB-API 구현은 다른 자리 표시자를 허용하므로 어떤 것을 사용하고 있는지 알아내야 합니다. 예를 들어(MySQLdb 사용):

    으아아아

    또는 (Python 표준 라이브러리의 sqlite3 사용):

    으아아아

    또는 다른 방법(VALUES之后,你可以使用(:1, :2, :3),或者使用"named styles" (:fee, :fie, :fo) 或者 (%(fee)s, %(fie)s, %(fo)s),在这种情况下,你需要将一个字典作为第二个参数传递给execute函数)。检查你正在使用的DB API模块中的paramstyle문자열 상수에서 매개변수를 전달하는 모든 방법은 http://www.python.org/dev/peps/pep-0249/에서 paramstyle을 확인하세요!

    회신하다
    0
  • P粉763662390

    P粉7636623902023-08-22 15:33:14

    으아아아

    매개변수는 튜플로 전달된다는 점에 유의하세요. (a, b, c)。如果您只传递一个参数,元组需要以逗号结尾,(a,).

    데이터베이스 API는 변수를 적절하게 이스케이프하고 인용합니다. 문자열 형식 지정 연산자(%)를 사용하지 않도록 주의하세요.

    1. 이스케이프나 인용을 수행하지 않습니다.
    2. SQL 주입과 같은 제어할 수 없는 문자열 형식 지정 공격에 취약합니다.

    회신하다
    0
  • 취소회신하다