
pg_send_query_params 함수를 사용할 때 query string에 문자열이 포함되어 오류가 발생하는 원인은 주로 문자열이 따옴표로 감싸여 있기 때문입니다.
따라서, 문자열을 따옴표로 감싸지 않도록 하거나, 따옴표를 이스케이프 처리하는 방법을 사용하면 오류를 해결할 수 있습니다.
예를 들어, query string에 포함된 문자열을 이스케이프 처리하는 방법은 다음과 같습니다.
#hostingforum.kr
sql
query := "SELECT * FROM 테이블 WHERE 이름 = '" + string(이름) + "'";
위의 방법은 문자열을 이스케이프 처리하는 방법입니다. 하지만, PostgreSQL에서 제공하는 quote_literal 함수를 사용하는 방법도 있습니다.
#hostingforum.kr
sql
query := "SELECT * FROM 테이블 WHERE 이름 = " + quote_literal(string(이름)) + "";
위의 방법은 PostgreSQL에서 제공하는 quote_literal 함수를 사용하는 방법입니다. 이 함수는 문자열을 이스케이프 처리하여 따옴표로 감싸줍니다.
또한, PostgreSQL 9.4 이상부터는 quote_literal 함수 대신 quote_ident 함수를 사용할 수 있습니다. 이 함수는 식별자(예: 테이블 이름, 컬럼 이름)를 이스케이프 처리하여 따옴표로 감싸줍니다.
#hostingforum.kr
sql
query := "SELECT * FROM " + quote_ident("테이블") + " WHERE 이름 = " + quote_literal(string(이름)) + "";
위의 방법은 식별자와 문자열을 이스케이프 처리하여 따옴표로 감싸줍니다.
2025-03-16 23:13