带变量的 SQL 查询

2023-12-12

我正在为学校做 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(使用前将#替换为@)

带变量的 SQL 查询 的相关文章

  • Mac 上的 Delphi - 可能吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我负责一个 Delphi Win32 项目管理应用程序 我刚刚完成了向 Delphi 2009 的迁移
  • 如何检查注册表项是否存在

    我不知道我的错误在哪里 它总是跳到else分支 但是密钥存在 我检查了几次 var reg TRegistry begin with TRegistry Create do try RootKey HKEY CURRENT USER Ope
  • EOutOfMemory 使用 Delphi 创建大型 XML

    我正在使用 Delphi 从关系数据库中的数据创建 XML 文档 它在小数据集上测试得很好 但是当我尝试将数据集的大小扩展到生产级别时 它最终在节点创建期间因 EOutOfMemory 异常而崩溃 我正在使用放在表单上的 TXMLDocum
  • 所见即所得与 Unicode

    我在 Delphi 中编写了一个 Windows 程序 该程序使用 GetCharWidth 和 Em Square 将文本非常精确地放置并换行到屏幕和打印机 这对于 ANSI 文本效果很好 您只需要检索和计算 255 个字符的宽度 但当您
  • 查找字符串是否在列表中的最佳方法(没有泛型)

    我想做这样的事情 Result MyString in string1 string2 string3 string4 这不能与字符串一起使用 我不想做这样的事情 Result MyString string1 or MyString st
  • Writeln 能够支持 Unicode 吗?

    考虑这个程序 APPTYPE CONSOLE begin Writeln Z end 使用 Consolas 字体的控制台上的输出是 Z Windows 控制台非常有能力支持 Unicode 如该程序所示 APPTYPE CONSOLE u
  • 创建无边框表单而不丢失 Windows 命令

    我已将表单更改为无边框表单 我只是更改了BorderStyle财产给bsNone 但现在我的应用程序失去了 Windows 锚点和一些命令 例如 WIN 对齐表单客户端 WIN 最小化表格 WIN 表格右对齐 WIN 表格左对齐 我尝试过设
  • 使用 Delphi 的 7-Zip?

    我想使用 Delphi 的 7 Zip DLL 但一直找不到合适的文档或示例 有谁知道如何使用 Delphi 的 7 Zip DLL 自版本 1 102 起JEDI 代码库 http wiki delphi jedi org index p
  • 在这些情况下限制破折号的正则表达式模式

    Scenario 我正在使用第三方文件重命名软件 该软件是用 Delphi 编写的 并且具有 pascal 脚本支持 该应用程序允许使用正则表达式来重命名文件 这意味着 如果我需要对文件名执行的操作不能仅使用一个正则表达式来完成 那么我可以
  • 挂钩到文件,实时读取新内容

    我如何连接到另一个程序当前正在使用的文件 该程序不断向该文件写入内容 假设有一个 10 行的文本文件 当我启动我的应用程序时 每次写入程序保存其内容时 它都必须检测并读取其中的任何内容 可以在不不断检查文件大小 日期的情况下完成此操作吗 您
  • Delphi 生成的 Dylib 在 OSX 上的可靠部署

    我想在 OSX 上部署一个 dylib 它是用 Delphi 创建的 这个 dylib 应该是可由第三方应用程序加载 这看起来像是一个重复的问题 但经过大量搜索后 我找不到答案 这和这个是同一个问题 https forums embarca
  • 应用程序需要很长时间才能同步线程(或根本不同步)

    我在 Delphi XE5 iOS 和 Android 中使用 REST 组件 我目前正在通过 iOS 模拟器进行测试 我的应用程序often挂在我的代码中的以下行 R Request Execute 经过一些调试后 我发现它特别挂在 RE
  • 就 ADO 而言,nvarchar(max) 有多大?

    我正在尝试使用针对 ADO 的参数化查询 http msdn microsoft com en us library windows desktop ms677209 28v vs 85 29 aspx INSERT INTO Foo 名称
  • 尝试访问 Delphi 7 中的 Excel 表时的提供程序选择

    我正在尝试使用 TAdoConnection 组件从 Delphi 7 连接到 Excel 表 问题是当我选择 Microsoft Jet OLEDB 4 0 Extended Properties Excel 8 0 时 我有时会收到错误
  • Delphi 使用 标记将 TXMLData 包装在 SOAP 请求中

    我使用 TXMLData 发送 XML Delphi 在请求中添加一个标签 我的代码如下 RequestData TXMLData Create RequestData LoadFromXML
  • 设置第二个 TFDPhysFBDriverLink - 可能且必要吗?

    我的应用程序有设计时间TFDConnection and TFDPhysFBDriverLink作为源连接 这可能会也可能不会在 Firebird 嵌入模式下打开 如果是这样 FDPhysFBDriverLink VendorLib fbe
  • 获取当前时间毫秒

    如何获取当前时间 以毫秒为单位 我知道使用Now 但我需要以毫秒为单位的时间 var today TDateTime begin today Now DateUtils MilliSecondsBetween Now 0
  • 德尔福 LZMA

    我在 7 zip 网站上找到了一个 LZMA 库 但是没有用 我不使用文件 只使用流 出于某些原因 7 zip 站点上的库只将标头写入流而不压缩流 有人遇到了一些问题吗 有例子吗 知道 Delphi 的其他 LZMA 库吗 Tks 我自己没
  • Delphi 中的录音/保存

    是否有组件或代码允许执行以下操作 录制一个或多个口语单词并将其保存到可以播放的文件中 该文件必须能够在 XP Vista 和 Windows 7 上播放 该文件可以是独立的 也可以保存到数据源 使用 Delphi 7 在 XP 上创建应用程
  • 防止“组合有符号和无符号类型扩大了两个操作数”编译器警告

    此代码用于设置组件 会产生编译器警告 DCC Warning Unit1 pas 742 W1024 Combining signed and unsigned types widened both operands var iPrecis

随机推荐

  • 用于年龄验证的正则表达式,仅使用 Javascript 接受 0-200 之间的年龄

    我想要一个允许用户仅输入 0 到 200 之间的数字的正则表达式 我已经尝试过这个但它不起作用 var age regex S 0 9 0 3 您可以比较数值本身 而不是正则表达式 var ageValue 50 get the input
  • Matplotlib:外部图例,分布在多个子图中

    我有一个包含 2 个子图的图 所有子图共享相应的图表 即相同颜色的相同标签 我想在图的顶部有一个图例 延伸到两个子图 类似于下面的代码 import numpy as np import matplotlib pyplot as plt x
  • 请求标头中的 JWT 与接收 .Net Core API 时不一样

    当我从 Angular 应用程序向 Net Core 2 API 发出请求时 JWT 与请求标头中发送的 JWT 不同 启动 cs public class Startup public Startup IHostingEnvironmen
  • 从字符串中分割特殊字符和字母

    我有一个字符串值 我包含字母 特殊字符 数字和空格的组合 但我只想检索数字 my code Dim str1 As String 123456habAB Dim str2 As String Regex Replace str1 gt
  • 双截断输出的 7 个字符

    double fat 0 2654654645486684646846865584656566554566556564654654899866223625564668186456564564664564 cout lt
  • 无法删除被授予连接数据库的角色

    我正在使用 PostgreSQL 10 4 我发现了一个奇怪的行为 如果我们创建一个角色并将其授予CONNECT数据库 CREATE ROLE dummy GRANT CONNECT ON DATABASE test TO dummy 那么
  • 引用方法内的对象时出现问题

    internal class Program public class Creature public int health public int damage public int coins public static void Hit
  • 如何将现有的 iPhone 应用程序移植到 iPad

    我有一个 iPhone 应用程序 现在我想将该应用程序转换为可在所有 iPhone iPod iPad 设备上运行的通用应用程序 那么 从哪里开始 我需要做哪些事情呢 任何帮助 链接 示例应用程序 任何东西 都将受到高度赞赏 提前致谢 我最
  • iPhone OS 应用程序的可用内存

    是否有函数或常量定义 iPhone OS 中应用程序的可用内存量 我正在寻找一种独立于设备 iPod touch iPhone iPad 的方式来了解应用程序还剩多少内存 该函数将返回可用内存 以字节为单位 import
  • 如何定义二维数组?

    我想定义一个没有初始化长度的二维数组 如下所示 Matrix 但这给出了一个错误 IndexError 列表索引超出范围 从技术上讲 您正在尝试为未初始化的数组建立索引 在添加项目之前 您必须首先使用列表初始化外部列表 Python 称之为
  • 符号函数矩阵

    我想在 Matlab 中定义一个符号函数 而不是变量 矩阵 在工作区中 我希望它成为大小为 N M 的类 symfun 的元素 其中N and M是正整数 你不能创建一个矩阵symfun类元素 可能出于同样的原因无法创建函数句柄矩阵 但您可
  • 如何在 PHP 中发送 HTTP 请求并检索响应(通过标头微调)?

    我必须向 URL 发送 HTTP 请求并检索响应和标头 我不仅对页面内容感兴趣 而且对所有标题也感兴趣 最佳解决方案是什么 插座 PEAR 库不可访问 PHP 配置不可编辑 你应该使用curl 文档中的快速示例
  • 如何在与主程序不同的线程中编写套接字服务器(使用 gevent)?

    我正在开发一个 Flask gevent WSGIserver Web 服务器 它需要使用 XML 通过两个套接字与硬件设备进行通信 在后台 一个套接字由客户端 我的应用程序 启动 我可以向设备发送 XML 命令 设备在不同的端口上应答并发
  • Objective-C / C 从 SecKeyRef 中提取私钥(模数)

    我需要一种干净的方法来提取我的服务器公钥并将其与本地数据进行比较 以防止将来密钥过期 更新 但我似乎无法获取 256 位密钥或将其表示为有用的数据为了比较 这是我到目前为止所拥有的 BOOL trustCertFromChallenge N
  • 提升消费者进程中的共享内存和同步队列问题/崩溃

    我正在尝试从子进程消耗 C 中的同步队列 我在 C 中使用这个同步队列 http www internetmosquito com 2011 04 making thread safe queue in c i html 我修改了队列以在b
  • Selenium webdriver 在尝试通过 ANT 运行时抛出异常

    我正在通过 Eclipse 使用 selenium 运行我的 UI 自动化测试用例 它运行良好 没有任何问题 当我在 Eclipse 中执行此操作时 会启动浏览器 执行测试用例 更新结果 然而 当我尝试通过 ANT 运行它时 它开始给我带来
  • Python字典复制方法

    我对字典复制方法有疑问 例如 假设我有 gt gt d pears 200 apples 400 oranges 500 bananas 300 gt gt copy dict d copy 现在 如果我检查 d 和 copy dict 的
  • 如何使用 css 在同一位置显示 2 个元素?

    div ul class social icon li a href class social facebook i class fa fa facebook i i class fa fa facebook ff i a li ul di
  • 数组动态时的最小查询范围

    我有一个大小为 1 的数组 A 0 索引 我想找到数组 A 中索引 k1 k1 gt 0 和 A size 1 即最后一个元素 之间的最小值 然后我会在数组末尾插入值 给定范围内的最小元素 一些 随机 常量 然后我有另一个查询来查找索引 k
  • 带变量的 SQL 查询

    我正在为学校做 PAT 我正在执行以下操作 我该如何纠正它 我想发送一个已输入的电子邮件地址 name ID 数字 出生日期 gender town一切都是字符串我的声明是 Adoquery1 sql text insert into be