SQL 인젝션에 대해 잘 알지 못하는 동료가 입력을 이스케이프 처리하고 매개 변수 배열을 대신 전달하는 것을 기억할 필요가 없도록 매개 변수가있는 쿼리를 사용하기 위해 직장에서 사용하는 데이터베이스 라이브러리를 업데이트하려고합니다. 나는 pg_query_params
를 사용하고 있습니다).매개 변수화 된 쿼리의 외삽 된 버전을 얻으려면 어떻게해야합니까?
그러나 문제가 발생합니다. 데이터베이스 라이브러리의 요구 사항 중 하나는 실행되는 각 쿼리를 기록한다는 것이고 매개 변수가 채워지면 매개 변수화 된 쿼리의 텍스트를 가져 오는 방법을 알 수 없습니다. 매개 변수화 된 쿼리에 대한 내 자신의 함수를 롤백하는 것 외에는)?
pg_query_params('SELECT id FROM table WHERE foo = $1', array('bar'));
같은 매개 변수가있는 쿼리를 실행할 때 즉
, 나는 (pg_query_params
에 의해 사용되는)
SELECT id FROM table WHERE foo = 'bar'
postgres에서 마지막으로 실행 된 쿼리를 가져올 방법이 없습니까? 'preg_replace' 등을 사용할 수는 있지만 어쨌든 수동으로 인용하거나 이스케이프 처리해야합니다. –
페이지의 나머지 부분과 함께 쿼리를 출력 할 수 있어야하기 때문에 정확하게 문제가 해결되지는 않지만 질문에 답하기 때문에 받아 들였습니다. –