>  기사  >  백엔드 개발  >  Go에서 SQL 쿼리의 문자열과 값을 연결하는 방법은 무엇입니까?

Go에서 SQL 쿼리의 문자열과 값을 연결하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-26 17:38:03894검색

How to Concatenate Strings and Values in SQL Queries in Go?

Go의 동등한 SQL 쿼리 연결

Python에서 SQL 쿼리의 문자열과 값의 연결은 % 연산자를 사용하여 간단합니다. 그러나 Go에서는 이 방법이 예상대로 작동하지 않을 수 있습니다.

이 문제를 해결하기 위해 Go 프로그래머는 fmt.Sprintf 함수를 활용할 수 있습니다. 다음 코드 샘플은 문자열과 값을 연결하는 올바른 방법을 보여줍니다.

<code class="go">query := fmt.Sprintf(`SELECT columnA FROM tableA WHERE columnB = %d AND columnB = %s`, SomeNumber, SomeString)</code>

이 방법을 사용하면 값의 형식이 올바르게 지정되고 처리됩니다. 또한 사용자가 제공한 데이터를 쿼리에 포함할 때 주입 공격의 잠재적인 취약성에 주목하는 것이 중요합니다. 이러한 위험을 완화하려면 다음 접근 방식을 사용하는 것이 좋습니다.

<code class="go">query := `SELECT column_name FROM table_name
    WHERE column1_name = %d AND column2_name = %d`

rows, err := db.Query(query, Val1, Val2)</code>

쿼리와 값에 별도의 인수를 사용하면 악의적인 입력이 쿼리의 구조나 의도를 변경하는 것을 방지할 수 있습니다.

위 내용은 Go에서 SQL 쿼리의 문자열과 값을 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.