亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 QueryRowContent 在 Go 語言中調用存儲過程

使用 QueryRowContent 在 Go 語言中調用存儲過程

Go
不負相思意 2023-01-03 16:16:54
我試圖運行下面的代碼段并不斷拋出以下錯誤QueryRowContextsql: 應有 0 個參數,得到 2 個這種方法適用于純 SQL 查詢,當我嘗試使用關鍵字將存儲產品調用到query參數時,我不斷遇到問題CALL。import ("database/sql""net/http")func VerifyUser(user User) (*User, string, error) {  db, ctx := db.GetDB()  query := "CALL usp_GetUserByUsername(@Email)"stmt, err := db.Prepare(query)if err != nil {    log.Errorln("Error in preparing statement. " + err.Error())    return nil, "Error in preparing statement.", err}defer stmt.Close()row := stmt.QueryRowContext(ctx, sql.Named("Email", user.Email))var retUser Usererr = row.Scan(&retUser.ID, &retUser.Email, &retUser.Password, &retUser.Status)if err != nil {    log.Warningln("Unknown Email: " + user.Email + ". " + err.Error())    return nil, "Invalid user.", err}這里似乎出了什么問題?提前致謝。
查看完整描述

1 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

import (

"database/sql"

"net/http"

)


func VerifyUser(user User) (*User, string, error) {

  db, ctx := db.GetDB()

  query := "CALL usp_GetUserByUsername(?)"


stmt, err := db.Prepare(query)

if err != nil {

    log.Errorln("Error in preparing statement. " + err.Error())

    return nil, "Error in preparing statement.", err

}

defer stmt.Close()


row := stmt.QueryRowContext(ctx, user.Email)


var retUser User

err = row.Scan(&retUser.ID, &retUser.Email, &retUser.Password, &retUser.Status)

if err != nil {

    log.Warningln("Unknown Email: " + user.Email + ". " + err.Error())

    return nil, "Invalid user.", err

}

將查詢中的@Email 替換為 ? 并將電子郵件傳遞到 QueryRowContext not named statement


查看完整回答
反對 回復 2023-01-03
  • 1 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號