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