我有在這一個值的MySQL數據庫,一個字符串:「192.168.0.1」else條件似乎不工作中去
這裏是我的代碼:
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func checkErr(err error) {
if err != nil {
panic(err)
}
}
func main() {
db, err := sql.Open("mysql", "be:[email protected](127.0.0.1:3306)/ipdb?charset=utf8")
checkErr(err)
ip := "'192.168.0.1'"
rows, err := db.Query("SELECT * FROM Ip_ipdata WHERE ipHost=" + ip)
fmt.Println("insert")
if rows != nil {
for rows.Next() {
var id int
var ip string
err = rows.Scan(&id, &ip)
checkErr(err)
fmt.Println(id)
fmt.Println(ip)
}
} else {
fmt.Println("insert2")
stmt, err2 := db.Prepare("INSERT Ip_ipdata SET ipHost=2")
checkErr(err2)
_, err3 := stmt.Exec(ip)
checkErr(err3)
}
fmt.Println("end")
}
當我把"'192.168.0.1'"
在ip
它的工作原理和預期一樣。
但是,當我把"'192.168.0.2'"
放在ip
else語句不運行,它只是退出。
它沒有打印
最好的猜測是你仍然在if塊。你檢查了你回來的行數嗎? –
檢查'db.Query'返回的錯誤值。在出現錯誤的情況下,函數/方法通常會返回一個零值對象(或指向它的指針)。實際上這被認爲是很好的做法。 – abhink
@ william.taylor.09 dam你是對的謝謝 – user462794