2012-06-01 101 views
0

我使用XML文件作爲數據庫,它從MySQL數據庫中獲取條目。爲了添加一個新的條目,我有一個頁面,它爲名稱,日期,位置等事物提供參數化查詢,並將數據輸入到數據庫中,前提是信息以適當的格式給出。Android - 加載參數化查詢 - 如何正確編碼

例如,我想把恩的名字,我編碼是這樣的:

String name = "Mark" // Just for demonstration 
String nameEn = URLEncoder.encode(name, "UTF-8"); 

這是我做初步的消毒。對於額外的保護,我已經嘗試過:

UrlQuerySanitizer sanitizer = new UrlQuerySanitizer(); 
sanitizer.setAllowUnregisteredParamaters(true); 
sanitizer.parseUrl(url); //Url being the total url with parameters 

但是,有時它只是不插入新行。當我使用逗號或撇號時會發生這種情況,所以它與我想的消毒有關。

我在做什麼錯?謝謝。

編輯:更具體的

我有一個PHP文件,將插入數據庫條目與參數化查詢是這樣的: www.example.com/newentry.php?name=thename&location=thelocation1

我想與thenamethelocation一起串聯URL字符串(作爲輸入)消毒,以便他們在網址中工作。如果我使用逗號或撇號之類的東西,它將無法插入該條目,因爲我假設這不是正確清理那些被採用的輸入。

+0

你使用一個XML文件作爲數據庫,但你沒有指定你使用什麼庫,或者你自己寫代碼?無論哪種情況,如果您沒有指定您正在使用的內容,您如何期待某人回答您的問題? UrlQuerySanitizer與數據庫有什麼關係? – Christine

+0

那麼,我使用一個XML文件,讀取我的MySQL數據庫。它只是從數據庫中插入和檢索條目,所以是的,我只是寫了PHP來做到這一點。它的Android方面與數據庫沒有任何關係,只是加載了導致插入條目或使它們全部顯示爲XML以便以字符串形式抓取的URL。 –

+0

你的問題被標記爲「android」,但它確實是關於你的php mysql查詢,其中你不給我們代碼。標記你的問題「php」並提供php代碼,而其他人會幫助你。 – Christine

回答

1

你看錯了你的錯誤的地方。

包含,'的url是一個有效的URL,所以問題必須在您的服務器端。

我想你使用的值爲$_GET["parameter"],所以請確保在嘗試將這些值插入數據庫之前,先執行諸如mysql_real_escape_string($_GET["parameter"])之類的必要事項。

深入瞭解SQL Injections。這可能讓你偏執免費,也:)