Go PostgreSQL:如何从 db.Query 中获取行数?

Posted

技术标签:

【中文标题】Go PostgreSQL:如何从 db.Query 中获取行数?【英文标题】:Go PostgreSQL: How to obtain number of rows from a db.Query? 【发布时间】:2016-01-04 17:02:59 【问题描述】:

作为 PostgreSQL 连接器,我导入以下包:

_ "github.com/lib/pq"

我运行的查询是:

res, err := db.Query("SELECT id FROM applications WHERE email='" + email + "'")

其中电子邮件自然是一个字符串。计算 res 中行数的一种方法是遵循 sn-p

count:=0
for res.Next() 
  count++
  //some other code

但应该有一些更简单(更快)的方法。看来 RowsAffected() 不是要走的路。那么,您的建议是什么?

【问题讨论】:

How to find the rows count returned from db.Query postgres的可能重复 【参考方案1】:

使用COUNT函数:

"SELECT count(*) FROM applications WHERE email='" + email + "'"

【讨论】:

请只用英文发表答案 你不应该像这样构造 SQL 查询。这很容易发生 SQL 注入,你应该使用准备好的语句。 Kulix,在这种情况下,我并不完全同意你的看法。当然,这种类型的查询很容易出现 SQL 注入,但是如果您验证 email var 是有效的电子邮件,您就可以避免这个问题。有不同的方法可以解决问题,因为评论很好,但我认为这根本不是一个错误的答案。 验证错误时会发生什么? SQL注入。这绝对是在所有情况下构造 SQL 查询的错误方法。

以上是关于Go PostgreSQL:如何从 db.Query 中获取行数?的主要内容,如果未能解决你的问题,请参考以下文章

Go 连接PostgreSQL数据库

go postgresql array

go语言postgresql数据库驱动怎么用

使用 Go 编写 PostgreSQL 触发器

Django:将项目从 sqlite 迁移到 PostgreSQL 的最佳实践是啥

go+postgresql服务器