0
我在golang中使用sqlx,這是非常有用的,但它似乎不會拋出錯誤,當我使用結構掃描和結構的類型不匹配的SQL類型。比如我在這裏建立一個數據庫,有一個名稱(字符串)和年齡(INT):Golang Sqlx不拋出錯誤
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| name | varchar(255) | NO | | NULL | |
| age | int(11) | NO | | NULL | |
+-------+--------------+------+-----+---------+-------+
+------+-----+
| name | age |
+------+-----+
| bob | 10 |
+------+-----+
然後我用SQLX讀出值轉換成一個結構,但結構有錯誤的類型。
package main
import (
"log"
"github.com/jmoiron/sqlx"
_ "github.com/go-sql-driver/mysql"
)
// in database name is a string and age is an int
type Person struct{
Name int
Age string
}
func main() {
sqlSession, err := sqlx.Open("mysql", "root:@(localhost:3306)/dashboard?parseTime=true")
if err != nil {
log.Panic(err)
}
err = sqlSession.Ping()
if err != nil {
log.Panic(err)
}
query := "SELECT * FROM test"
rows, errSql := sqlSession.Queryx(query)
if errSql != nil {
log.Panic(errSql)
}
for rows.Next() {
var p Person
errScan := rows.StructScan(&p)
if errScan != nil {
log.Panic(errScan)
}
log.Println("Person:", p)
}
}
所以不是給我一個錯誤,它已經清零了值。人員:{0}
是否有其他人遇到此問題?其他人是否認爲這是一個錯誤?我認爲當我嘗試掃描到無效類型時,它應該會給我一個錯誤。
感謝您的回答,我會嘗試打開併發布,看看它是如何發展。 – Gary