從谷歌的BigQuery文檔:谷歌的BigQuery - 運行參數化查詢 - PHP
運行參數化查詢
BigQuery支援查詢參數,以幫助防止SQL注入時 查詢使用的用戶輸入構造。此功能僅適用於標準SQL語法的 。
要指定一個命名參數,請使用@字符,後跟 標識符,例如@param_name。
而谷歌Bigquery有python和Java使用參數化查詢的示例代碼。
https://cloud.google.com/bigquery/querying-data#bigquery-query-params-python
谷歌的BigQuery沒有PHP的範例代碼,這裏運行參數化查詢。
我嘗試使用@在PHP就像在那裏的Python和Java代碼,它不起作用。
有什麼建議嗎?
謝謝!
我加入了代碼由Elliott和魔煞
代碼的請求:
$query = "SELECT * FROM [myproject.mydateset.users] where user_id = '$userId' LIMIT 1000";
$queryResults = $this->bigQuery->runQuery($query);
該查詢是罰款。但它並不妨礙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";
防止SQL注入攻擊。 這兩個查詢都不起作用。
您可以分享您嘗試運行的PHP代碼的示例嗎? –
查看代碼片段會很有幫助,特別是如何設置參數值;並且更詳細地解釋什麼是「不起作用」的意思。 –