问题标签 [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.
sql - FROM 子句中的参数化 SQL
使用OleDbCommand
. 我可以添加 SQL 参数,从而使查询免受 SQL 注入的影响,但是有没有办法在FROM
cluase 中做到这一点。见下文
这行得通
它返回一个漂亮的表,其中 id = 1
但
我正在寻找这样的东西,请注意 FROM CLAUSE
DBMS 不断返回"Error in From clause"
PS一切都拼写正确 - 我三重检查
致所有人 - 谢谢,但是我将坚持只使用参数化 SQL。我不喜欢 Dynamic SQL
One BIT
delphi - 就 ADO 而言,nvarchar(max) 有多大?
我正在尝试对 ADO 使用参数化查询:
插入 Foo(名称,值)值(@name,@value)
在 SQL Server 中,Name
列是一种varchar
类型。该Value
列是一个nvarchar(max)
.
当我不知道或想要指定大小时,我在创建参数时传递什么大小?
简单的替代方案将是:
并且已经完成了。但我想我会花几天时间尝试使参数化查询成为可行的解决方案,并且避免编写QuotedStrW
.
sql-server - ADO 参数化查询出现“必须声明变量 @myvariable”错误
我正在尝试将参数化查询与 ADO 一起使用。执行Command
对象会引发错误:
必须声明变量'@filename'
@filename
我使用以下方法声明参数CreateParameter/Append
:
我究竟做错了什么?
delphi - 如何使用 TADOCommand 参数化查询参数化宽字符串?
我正在尝试将参数化查询与 Delphi TADOCommand 一起使用:
数据库中的结果数据完全被破坏:
C?:\U?s?er?s?\i??n?.A?V`A?T?O?P?I?A?\A?p?p?D??t??\L ?o???l?\A?v?at??r? S?o?f?t?w?är¨? C?r??t?i??n?s?\S?o°f?t?w?r?? Q?u??li?t?y? M??t?r?i?cs?\C??S?-s?q?m?00.x?m?l
我可以使用本机参数化 ADOCommand
对象。它正确保存数据:
c̬:\ȗŝḙr͇s̶\i̜ẵn̥.àv̹aͧp̩i̿ȁp̩i̿ȁ\a͜p̥p̔d͑ẫ
但它非常脆弱,不适合生产使用。
我如何TADOCommand
在 Delphi 中使用 unicode/WideStrings?
奖金喋喋不休
在 SQL Server Profiler 中,您可以看到正在执行的 SQL:
exec sp_executesql N'INSERT INTO Sqm(Filename) VALUES(@P1)', N'@P1 char(300),@P2 text', 'C?:\Us?er?s?\i?än?.A? V?A?T?O?P?I?À\A?p?p?D?ât?a\L?o?çal¯\A?v?at??r? 所以?f?t?w?ar?? C?r??á?i?o?n?s?\So¸f"t?w?ar?? Q?u??l?i?ty? M??t?r?i¸?s` \C?M°S?-s?q?m?00.?m¨´l¯'
这指出了问题 - 它将WideString
参数构建为一个char(300)
值。让它不坏。
在它进入参数孔之前,我最后看到的 WideString 是:
在哪里
NewValue
是类型VT_BSTR
(akavarOleStr
) 的变体,具有适当的值ParameterObject
是本机 ADO_Parameter
对象,具有.Type
129 (adChar
)
甚至试图强制参数类型:
没有帮助。
注意:这个问题是关于如何参数化的系列的一部分
INSERT INTO foo (value) VALUES (%s)
php - 使用 PostgreSQL 为 PHP 上的 IN / =ANY 子句参数化数组
我需要在参数化查询中传递一个字符串数组。我尝试了以下方法,但它根本不起作用。
我已经看到将数组转换为字符串然后使用 string_to_array 将输入转换为数据库端的数组的解决方案,但是由于这些字符串是从用户输入的,即使我使用了分隔符而不是逗号。如果可能的话,我宁愿为此使用更清洁的解决方案。
有没有办法让这个查询参数化并将一个数组传递给它,而无需将数据转换为字符串?
顺便说一句,我使用的是 PostgreSQL 8.3
c# - 带有动态 where 子句的参数化查询
所以我有这个查询:
我已经阅读过针对 SQL 注入等的参数化查询。问题是,鉴于我将拥有动态数量的 WHERE 子句(基于搜索模型),我如何参数化查询?我不能放WHERE a = @A AND b=@B...
,因为用户必须不需要根据所有列进行搜索。
任何想法?提前致谢。
PS:不能使用 LINQ 或类似的东西(-业务规则-)。
sql - postgresql 中的布尔通配符
我有一个参数化的 postgresql 查询,用户通过 PHP 前端与之交互。其中一个参数涉及一个布尔值,我想给用户“真”、“假”、“未知”(Null)或“无关紧要”(返回任何结果)选项。
重写实际查询不是一个选项(参数化查询存储在数据库表中,而不是 PHP 代码中),所以我需要一个布尔“任何”值。
换句话说,无论“boolean_column”的值如何,我可以在此查询中分配什么值“:parameter1”来获取任何行?
编辑:我需要澄清——我可以重写查询,但程序不能重写查询(即,我不能删除或重写 where 子句以响应运行时的用户输入)。
EDIT2:这是我的最终解决方案(感谢 couling!)
当然,程序必须将可能的值限制为“any”或可以转换为布尔值的字符串值(例如,“true”、“t”、“false”、“f”)。
EDIT3:以前的解决方案在带有 PDO 的 PHP 中工作,但由于某种原因不适用于 python 的 psycopg2 或直接在 postgresql 中。我尝试了一个带有 case 语句的变体,如下所示:
但这也行不通。似乎无论如何,我都无法阻止 postgresql 尝试评估“:parameter1::boolean”,即使它落后于错误的 WHEN 条件。这才是真正的泡菜...
c# - 字符到数字的转换过程失败
当我尝试将参数化查询与informix
.
php - PDO 错误:“无效的参数号:未定义参数”
我正在尝试使用带有数组形式参数的简单 MySQL 插入查询。它一直告诉我参数的数量是错误的。我尝试了以下方法,都产生了相同的错误:
和
以及专门声明列以避免空插入:
这是我第一次使用 PDO(我通常使用 mysqli,但我当前的共享主机没有 mysqlnd 插件,这使我无法使用 prepare(),所以从这个角度来看任何见解都是值得赞赏的。
c# - 如何在参数化查询中检查 null?
我有一个如下所示的类,它在 Access 2007 中有一个相应的表
这是我用于将产品添加到数据库的方法。
现在我不介意用户是否输入了一些空值。在那种情况下,我该如何更新 AddProduct 方法?我想到的唯一情况是对每个参数进行空检查,如下所示..
我错过了一些明显的东西吗?在这些参数化查询中检查空值的最佳方法是什么?