5
使用Delphi 2010,我使用TSQLQuery和TSQLConnection連接到遠程MySQL服務器。我已經使用了SQL查詢如下:如何獲取SQL查詢的結果?
SQLQuery1.SQL.Text := 'SELECT * FROM registered WHERE email="'+email+'" and login_pass="'+password+'"';
SQLQuery1.Open; // Open sql connection
我應該怎麼做才能列出或顯示這個查詢選擇的數據?
當我鍵入
SQLQuery1['who']; // The resault is : James Kan
,我認爲它在列表中顯示的最後一項。但我想顯示每個項目,因爲我可以在PHP中使用foreach循環。我怎樣才能爲每個物品創建一個TLabel?
順便說明,這樣你的代碼SQL是通常的方式,允許「SQL注入」。做一個登錄表,聰明的用戶可以讀整個表。您應該使用「SQL參數」,即email =:email和login_pass =:password。 在沒有首先「清理」它們的情況下連接字符串是很危險的,因爲用戶可以輸入「正確」字符並完全改變查詢含義。 – 2011-12-16 19:56:20
使用參數將會跳過這些值,但是您需要過濾掉NULL。另外,用LIKE子句過濾出`%`和`_`。 – 2011-12-16 20:39:38