问题标签 [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.
php - MySQL 参数化查询 - 缓存持续时间
我正在开发一个新项目并第一次使用参数化查询(PHP 和 MySQL DB)。我读到他们参数化的查询被缓存了,但我想知道它们被缓存了多长时间。例如,假设我有一个函数“getAllUsers()”,它从用户表中获取所有活动用户 ID 的列表,并且对于每个 ID,创建一个用户对象并且对函数“getUser($user)”的调用是用于设置对象的其他属性。'getUser()' 函数有它自己准备好的查询,函数末尾有一个 stmt->close()。
如果我这样做,我在“getUser()”中的参数化查询是否完全利用了缓存,或者在每个 stmt->close() 之后查询是否从缓存中销毁?
注意:如果页面只需要单个用户对象的数据,我也会使用 getUser() 函数,所以我想这样做以确保如果用户表发生更改,我只需要更新一个查询。
这是做这样的事情的正确方法还是有更好的方法?
更新:有趣,刚刚在 php.net 的准备语句手册上看到了这个(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)
使用准备好的语句并不总是执行语句的最有效方式。只执行一次的准备好的语句比未准备的语句会导致更多的客户端-服务器往返。
所以我想参数化查询的主要好处是防止 SQL 注入,而不一定要加快速度,除非它是一次重复的查询。
ms-access - ms-access + vb6:没有存储查询的参数化查询
我想知道在 ms-access through vb6 (ADODB) 中是否可以享受参数化查询的安全优势
不使用存储过程。所以有类似的东西:
代替
c# - 如何将表名和选定字段作为参数传递
我收到以下错误:
错误:-201 消息:[Informix .NET 提供程序][Informix]出现语法错误。
当我尝试执行此代码时:
c# - Access SQL表达式中如何处理字符串变量中的单引号或双引号
我用c#写了这行来操作microsoft access数据库
resxValue
并且resxKey
都是字符串变量。
当两个字符串变量很简单时,例如“abc”,“xyz”,一切正常,但是当一个字符串变量变得复杂时,在我的情况下,像这样:
提示:
要修复费率计划和 rpt 错误,请使用“重新处理”
要修复运营商、中继组、交易员错误,请使用“删除并重新插入”
程序抛出一个错误,当我进行调试时,sComm.CommandText 是这种形式:
更新 TableToBeImport 设置 TextDefault = 'TIPS: \r\n1. 要修复速率计划和 rpt 错误,请使用“重新处理”\r\n2。要修复运营商、中继组、贸易商错误,请使用“删除并重新插入” WHERE ControlName = 'frmCDRQuery.label7.Text'
我知道在 c# 中,我可以@
在字符串变量之前使用,因此其中的任何转义字符都将被忽略。但是在访问中,我怎样才能得到相同的结果?
asp.net - 防止asp.net中的sql注入
我有以下身份验证方法:
这足以防止sql注入吗?我以前只是将用户名和密码直接输入到命令中,如下所示:
其中 username 和 pwd 仅在其中存储用户名和密码文本框内容的字符串变量...
编辑:
好的,我已经编辑了我的代码,现在看起来像这样:
这是我的存储过程:
这足够了吗?我的 Web 应用程序会不会受到 sql 感染的影响,或者还有什么事情要做吗?
sql - VB.Net 更新不更新我的数据库
这是我要运行的代码。它会正常运行,但不会更新我的数据库。
当它没有参数化时它会起作用,但是当我在其中添加参数时它开始起作用。这是有问题的代码。
我几乎可以肯定语法是正确的,因为我的插入有效。这是我插入的代码。
我知道 where 子句是正确的,我对值进行了硬编码,我还将值与消息框进行比较,并将它们直接与数据库中的信息进行比较。
提前感谢任何和所有的意见,我希望我们能弄清楚。
sql - Unable to select values when using a parameter for the column name
When I run the code, it returns with a result of "SystemNavn"
(which is the name of the column in the table), instead of the value of that column in the current row. What am I doing wrong?
c# - 转换的日期时间问题。参数化查询不接受日期时间值
我有这个功能ExecuteSqlParameterizedQuery
,下面是我的查询:
MyDateTime
是DateTime
数据类型。MyBirthday
是DateTime
数据类型。
这是我的功能:
这向我展示了这个特殊的错误:the conversion of a nvarchar data type to a datetime data type resulted in an out-of-range value. the statement has been terminated.
我试图找到问题,但无法理解如何对我的代码进行更改以纠正问题。
编辑:
我也有这个作为我的日期时间界面:
日期时间声明是这样的:
c# - 如何通过参数化查询在数据库中插入空值
我有一个datetime
数据类型:dttm
数据库字段类型也是datatime
现在我正在这样做:
如何才能做到这一点。
asp.net - ASP.NET 如何从参数化 SQL 查询中删除双引号?
我似乎不工作,因为当我使用参数化 SQL 查询时也会插入双引号。如何删除双引号?
cmd.Parameters.AddWithValue("@SORT", (rdbAscending.Checked) ? "ASC" : "DESC");