구글 BigQuery의 문서에서 :구글의 BigQuery - 매개 변수화 된 쿼리 실행 - PHP
실행 매개 변수화 된 쿼리
의 BigQuery 쿼리 매개 변수를 지원하는 쿼리는 사용자 입력을 사용하여 구성 할 때 SQL 주입을 방지합니다. 이 기능은 표준 SQL 구문과 함께 사용 가능한 입니다.
명명 된 매개 변수를 지정하려면 @ 문자 다음에 @param_name과 같은 식별자를 사용하십시오.
Google Bigquery에는 매개 변수가있는 쿼리를 사용하는 python 및 Java 용 샘플 코드가 있습니다.
https://cloud.google.com/bigquery/querying-data#bigquery-query-params-python
구글 BigQuery를 여기에 매개 변수가있는 쿼리를 실행하기위한 PHP 샘플 코드를 가지고 있지 않습니다.
파이썬 및 자바 코드에서와 같이 PHP에서 @ 사용을 시도했지만 작동하지 않습니다.
어떤 조언이 필요합니까?
감사합니다.
나는 엘리엇과 Mosha코드의 요청으로 코드를 추가 :
$query = "SELECT * FROM [myproject.mydateset.users] where user_id = '$userId' LIMIT 1000";
$queryResults = $this->bigQuery->runQuery($query);
이 쿼리는 괜찮습니다. 그러나 그것은 SQL 인젝션을 방해하지 않습니다.
내가는 SQL 주입을 방지하기 위해$query = "SELECT * FROM [myproject.mydateset.users] where user_id = '@$userId' LIMIT 1000";
또는
$query = "SELECT * FROM [myproject.mydateset.users] where user_id = @$userId LIMIT 1000";
에 쿼리를 변경했습니다. 두 쿼리가 작동하지 않습니다.
실행 해 보았던 PHP 코드 샘플을 공유 할 수 있습니까? –
코드 스 니펫, 특히 매개 변수 값 설정 방법을 보는 것이 도움이됩니다. "작동하지 않는 것"에 대한 자세한 설명은 의미합니다. –