我正在为学校做 PAT,我正在执行以下操作,我该如何纠正它。我想发送一个已输入的电子邮件地址, name, ID
数字, 出生日期, gender, town一切都是字符串我的声明是:
Adoquery1.sql.text := 'insert into besprekings
values('email', 'name', 'Id', 'birth', 'gender', 'town')';
字段如下:
Email(string), Name(string), ID(string), Birth(string), Gender(string), town(string)
这并不是真正的家庭作业,而是一个占我学年 25% 的项目。我已经完成了所有事情,但无法做到这一点。我们必须引入一些我们在学校没有学过的新东西,对我来说,就是打开邮件(Windows 8)之类的程序,并且这样做我真的很感谢每个试图提供帮助的人。
您需要使用参数化查询来防止 SQL 注入。尽管现在在您的应用程序中这可能不需要担心,但最好首先养成正确执行此操作的习惯。我将展示一些代码,您可以自己弄清楚如何完成它。
首先,正确填充您的 SQL。指定要插入的列的名称,以及将用于填充它们的参数名称(以:
):
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO beskprekings (email, name, Id)');
ADOQuery1.SQL.Add('VALUES (:email, :name, :Id)');
现在将实际值插入到参数中,使用与您在参数中使用的相同名称。VALUES
list:
ADOQuery1.Parameters.ParamByName('email').Value := email;
ADOQuery1.Parameters.ParamByName('name').Value := name;
ADOQuery1.Parameters.ParamByName('id').Value := Id;
现在,执行查询。
使用参数化查询执行此操作的额外好处是,一旦运行一次,您只需重新填充参数并再次运行即可;数据库已经完成了它需要做的事情prepare
查询(提示:我标记的单词对 ADO 和其他数据库有意义 - 您应该研究一下),这样当您一次又一次使用它时,速度会快得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)