go
data_error
ai_generated
true
错误:数据库行:在 Rows.Err 之后调用 Rows.Next
error: sql: Rows.Next: called after Rows.Err
ID: go/database-sql-nil-rows
80%修复率
89%置信度
0证据数
2024-12-02首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 1.18 | active | — | — | — |
根因分析
在迭代数据库结果时,先调用了 Rows.Err() 导致迭代器状态异常,再调用 Rows.Next() 引发错误。
English
在迭代数据库结果时,先调用了 Rows.Err() 导致迭代器状态异常,再调用 Rows.Next() 引发错误。
解决方案
-
98% 成功率
for rows.Next() { /* 处理 */ } if err := rows.Err(); err != nil { log.Fatal(err) } -
95% 成功率
for rows.Next() { /* 处理 */ } if err := rows.Err(); err != nil { log.Fatal(err) }
无效尝试
常见但无效的做法:
-
90% 失败
会导致数据不完整或程序崩溃。
-
70% 失败
浪费资源,且未解决根本的迭代顺序问题。