问题标签 [prepared-statement]

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 投票
2 回答
2227 浏览

java - 在使用preparedStatement 选择时更新数据库

我正在从 MS SQL 数据库中选择一个数据子集,使用PreparedStatement. 在遍历结果集时,我还想更新行。目前我使用这样的东西:

使用正确的值更新数据库,但出现以下异常:

我已经用谷歌搜索了它,但在这个问题上找不到任何帮助。

如何防止此异常?或者既然程序做了我想做的事,我可以忽略它吗?

0 投票
2 回答
3138 浏览

php - 从准备好的语句中获取数据

我有一个函数,它是从数据库中返回一个包含记录的行数组,这些记录是基于 LIKE 查询选择的。出于安全原因,我希望此查询成为准备好的语句。显然我不能像我一样使用绑定参数和查询功能。那时我不确定如何将我的查询保留为准备好的语句,并返回我试图返回的行。

永远不会进入 while 循环。

0 投票
1 回答
669 浏览

.net - 在 .Net @ VS. 中使用 MySQL 准备语句?

根据MySQL .Net 连接器文档,在运行准备好的语句时,@ 符号用于定义参数。尝试此操作时出现错误。然后页面底部的用户评论说如果您有问题,请替换 ? 对于@ 字符。有什么方法可以控制 MySQL 对准备好的语句期望什么字符?我希望它习惯于“@”符号,因为它会使它更类似于我试图从中迁移的 SQL Server。

0 投票
6 回答
2060 浏览

php - 当您只进行一次选择时,使用准备好的 Select 语句会更好吗?

我目前正在使用 PDO 在 PHP 中编写一个 CRUD 类。

我喜欢prepared statements提供的安全性,但我听说它们也阻止了mysql等数据库使用queryCache。

当您一次只做一个选择时,使用准备好的 Select 语句会更好吗?或者只是 $pdo->quote() 从安全角度来看就足够了(或者有任何其他优势,比如缓存?)。

我所有的更新、删除和插入都是使用准备好的语句完成的。我只是对选择感到好奇。

0 投票
2 回答
894 浏览

java - PreparedStatement中的JDBC生成SQL

我最近遇到了一个非常大的问题,这花了我很多时间来调试。我有一个更新语句,它更新表中的 32 列。我用 PreparedStatement 做到了这一点。不小心我删除了一个 setParameter() 调用,所以更新无法成功完成。

我从 JDBC (Apache Derby) 得到异常,告诉:“至少一个参数未初始化”并且无法确定未设置哪个参数,因为驱动程序不会告诉您至少第一个参数的名称或序号没有设置...

我在谷歌上搜索某些实用程序未成功,该实用程序将从(即将完成的)准备好的语句中生成普通的旧 SQL。这在这种情况下会有很大帮助,因为我将能够看到未设置的内容。

有没有人遇到过这个问题?有什么解决办法吗?

0 投票
4 回答
12136 浏览

sql - 带有准备好的语句的 SQL 注入?

如果我没记错的话,我认为 Jeff 在 Stack Overflow 播客中提到了 SQL 准备语句中可能存在的弱点。我想知道他指的是哪种弱点?可能只是使用不当,还是更险恶?

在我的记忆中,播客并没有深入探讨这个主题,只是顺便说一句。

0 投票
10 回答
35161 浏览

java - PreparedStatements 和绩效

所以我一直听说 PreparedStatements 对性能有好处。

我们有一个 Java 应用程序,其中我们使用常规的“语句”比使用“PreparedStatement”更多。在尝试使用更多 PreparedStatements 的同时,我试图更全面地了解 PreparedStatements 的工作原理——在客户端和服务器端。

那么如果我们有一些典型的 CRUD 操作,并且在应用程序中反复更新一个对象,那么使用 PS 有帮助吗?我知道我们每次都必须关闭 PS,否则会导致游标泄漏。

那么它对性能有什么帮助呢?驱动程序是否缓存预编译语句并在我下次执行 connection.prepareStatement 时给我一份副本?或者数据库服务器有帮助吗?

我理解有关 PreparedStatements 的安全优势的论点,我很欣赏下面强调它的答案。然而,我真的想把这个讨论集中在 PreparedStatements 的性能优势上。

更新:当我说更新数据时,我的意思更多的是随机调用该方法多次。我理解下面提供的答案的优势,它要求在循环中重用语句。

没有办法真正重用“ps”java对象,我知道实际的connection.prepareStatement调用非常昂贵。

这让我回到了最初的问题。这个“一些 sql”PreparedStatement 是否仍然在我不知道的情况下被缓存和重用?

我还应该提到我们支持多个数据库。

提前致谢。

0 投票
2 回答
877 浏览

php - MySQL - 在返回结果之前通过 PHP 函数传递数据库字段

以下来自http://php.morva.net/manual/en/mysqli-stmt.bind-result.php的代码显示了正在准备和执行的 mysqli 查询。while ($stmt->fetch()) 循环看起来像是在生成结果资源。我可以更改它以包含对函数的调用,例如

然后我会返回($result)而不是 print_r($result)。这样我就可以动态改变 $val
的值 原始代码 =

这行得通吗,我还能怎么做?
谢谢大家...

0 投票
3 回答
126 浏览

php - 显示 mysql 查询的内容,只有第一个字段有效

我正在使用带有 php 的 mysqli prepard 查询,代码是:

这很奇怪。用户名是唯一显示的字段。为什么其他列不会被返回/绑定?

如果我做

直接到数据库,显示所有字段,并且都包含有效数据。

0 投票
7 回答
17724 浏览

php - 为什么使用 mysql 准备好的语句比使用常见的转义函数更安全?

另一个问题中有一条评论如下:

“当涉及到数据库查询时,请始终尝试使用准备好的参数化查询。mysqli 和 PDO 库支持这一点。这比使用 mysql_real_escape_string 等转义函数要安全得多。”

来源

所以,我想问的是:为什么准备好的参数化查询更安全?