问题标签 [parameterized-query]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1703 浏览

java - 简单参数化查询出错 - Java/SQL

继我之前的一个与方法设计有关的问题之后,我被建议将我的 SQL 查询实现为参数化查询,而不是简单的字符串。

我以前从未使用过参数化查询,所以我决定从简单的东西开始,采用以下Select语句:

这给了我以下错误:“[SQLITE_ERROR] SQL 错误或缺少数据库(靠近“?”:语法错误)”

然后我尝试了一个修改后的版本,它有额外的标准;

这个版本工作得很好,在我的第一个例子中,我错过了参数化查询的要点还是我错误地构造了它们?

谢谢!

0 投票
3 回答
319 浏览

c# - 方法优化 - C#

我开发了一种方法,允许我通过参数传入表(字符串)、列数组(字符串)和值数组(对象),然后我使用这些参数创建参数化查询。尽管代码的长度以及多个 for 循环都发出了代码气味,但它工作得很好,特别是我觉得我用来在列和值之间插入逗号的方法可以以不同的更好的方式完成。

我正在使用System.Data.SQLite库与数据库进行交互。

感谢您的任何建议!

0 投票
1 回答
2942 浏览

python - Python sqlite3 参数化删除表

我在 python 中删除 sqlite3 表时遇到问题。我正在使用标准sqlite3模块。

给我OperationalError: near "?": syntax error

当我更改sql为:

它工作正常。

0 投票
1 回答
2354 浏览

mysql - 防止 C 中的 SQL 注入

我正在编写一个 C 应用程序,它需要一些用户输入并执行一些数据库查询。我很清楚 SQL 注入的风险,并希望阻止它。

理想情况下,我会使用参数化查询,但到目前为止在 C 中找不到任何具有此功能的东西。我目前正在构建我的查询:

如果我无法做到这一点,那么我必须过滤用户输入。这个过滤应该怎么做?仅删除所有 's 和 "s 就足够了吗?(有效输入不能包含它们)。如果是这样,在 C 中执行此操作的最简单方法是什么?

0 投票
1 回答
458 浏览

php - 参数化查询,无需在 PHP 中准备语句

MySQLi、PDO 或 PHP 中是否有使用参数化查询但不准备稍后调用的 API?当我们不调用SQLParameter 的 .Prepare()方法时,我在 ADO.NET 中找到了它,但我在 PHP 中没有找到它。

0 投票
1 回答
7319 浏览

c# - 使用 Entity Framework 4.1 将位字段参数传递给存储过程

全部,

我整天都被以下问题困扰。我正在尝试进行包含三位字段参数的参数化存储过程调用。我一直遇到的异常是“将数据类型 nvarchar 转换为位时出错”。

这是我的源代码:

存储过程


C#代码:

任何帮助将不胜感激。我在项目工作上落后了。

谢谢,德里克

0 投票
2 回答
331 浏览

jsf - 如何迭代和动态参数化 JPQL 查询?

我有一个带有简单 ID 作为 URL 参数的页面。我现在要做的是运行一个查询来返回一些基本上需要迭代的关联实体:我需要为 LEAGUE 游戏、CUP 游戏和 PLAYOFFS 游戏返回一个游戏时间表,因此结果列表必须根据每个迭代。

这些计划中的每一个在 GUI 中都有自己的选项卡。对于 RichFaces 选项卡,我已经需要 JSTL c:forEach,所以我“只”需要找到一种方法来对组件(这里是 Seam EntityQuery 子类实例)设置另一个 WHERE 限制。

这里的问题是:如何在迭代期间使用当前实体参数化每个查询?在 Seam/JBoss EL 中如何做到最好?如何在迭代期间对 EntityQuery 实例进行另一或两个限制?

这是我使用的 JSF 代码:

这里的问题是你不能简单地#{rosterScheduleQuery.setCustomRestriction(pa.group.round.subCompetition.competition.name)}在 c:forEach 中调用类似的东西,因为这个表达式只会被评估一次(如果我理解正确的话)。我可能在这里遗漏了要点,因为这都是程序性的。

您通常如何解决迭代和运行时参数化查询(附加 WHERE 条件)?最佳实践总是受欢迎的。

谢谢

编辑:我已经在使用 Facelets,但是 rich:tabPanel 需要使用 JSTL c:forEach。见http://relation.to/11633.lace

0 投票
2 回答
1518 浏览

c# - 参数化 SQL 值语法问题

我不确定问题是什么,但我的代码如下所示:

我对参数化 SQL 完全陌生,但语法对我来说似乎是正确的。我不断收到的错误是:

必须声明标量变量“@initOwnerFirstName”。我写这样的语句的原因是因为我打算有多个其他 if 语句将添加到 SQLtext

编辑:这是 if 语句之后的完整代码部分,因为如果没有其他变量,我的语法几乎没有意义。这在 JYelton 建议之后被清理了,但我仍然遇到同样的错误。

0 投票
6 回答
1705 浏览

c# - 在大型 asp.net C# Web 应用程序中修复 SQL 注入表单

我必须修复一个容易受到 SQL 注入攻击的项目。

项目中每一页的所有表单都没有使用参数化查询,而是简单的字符串查询。

例如,我有搜索页面,查看后面的代码,我发现有一种方法可以基于文本字段创建查询,例如CreateQuery()

然后在btnSearch_Click()我有执行查询的方法:

我的问题是:

由于我有数百个表格和数千个formTextFIX 值,是否有一个“快速”的解决方案来实现,例如

  1. 以某种方式参数化查询或处理情况的全局函数?
  2. 由于在每个类中查询都是在SubmitButton_Click()方法后面的代码中执行的,我可以在这里处理这种情况,当然是在每个类中吗?
  3. 我是否应该修改表单代码隐藏中的每个表单和每个条目以参数化 SQL 字符串,这将需要一百万年?
  4. (编辑)编码/解码输入值呢?所以上面的例子将是:

    这是一个可能的临时补丁吗?

5-(编辑)这是一个可能的解决方案,还是根本没有改变任何东西?

问题是我必须返回一个字符串,因为处理查询的逻辑是在另一个将字符串作为查询的业务类中定义的,我不能给它一个 CommandType 或 SqlDataAdapter ...

建议?

提前致谢。

0 投票
2 回答
1831 浏览

c# - 参数个数错误(参数化查询)

问:

当我尝试执行以下参数化查询时:

通过command.ExecuteScalar();

抛出以下异常:

错误 [07001] [Informix .NET 提供程序]参数数量错误。

哪里有问题?

编辑: