第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

無法使用 Go MySQL 檢索輸出參數(shù)

無法使用 Go MySQL 檢索輸出參數(shù)

Go
長風(fēng)秋雁 2023-07-17 09:52:59
我有一個存儲過程,它插入一個實體并返回其新的 UUID,雖然我可以生成代碼來創(chuàng)建正確的查詢,但在使用go-sql-driver/mysql. 所以下面的代碼...func test_insert() *sql.Rows {    db := openDbConnection()    defer db.Close()    results, err := db.Query("call saveargument(null, 'Test Argument', 'Test Argument', '1', null, null, null, 1, 'test_user', @newargumentid);\nselect @newargumentid;")    toolkit.HandleError(err)    return results}func openDbConnection() *sql.DB {    var db, err = sql.Open("mysql", getConnectionString(entities.GetConfig()))    toolkit.HandleError(err)    return db}...產(chǎn)生以下錯誤:您的 SQL 語法有錯誤;檢查與您的 MySQL 服務(wù)器版本相對應(yīng)的手冊,了解在第 2 行“select @newargumentid”附近使用的正確語法我不知道為什么這樣一個基本的 SQL 片段會出現(xiàn)如此大的問題。有人有什么見解嗎?
查看完整描述

2 回答

?
UYOU

TA貢獻1878條經(jīng)驗 獲得超4個贊

您不能在一次調(diào)用中運行多個語句db.Query()。所有編程語言中的大多數(shù)查詢接口都是如此。

在一次調(diào)用中調(diào)用您的存儲過程db.Query(),然后select @newargumentid在第二次調(diào)用中進行查詢db.Query()。


查看完整回答
反對 回復(fù) 2023-07-17
?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

我可以確認它在 Go1.14 中不起作用。我的解決方法是通過在最后進行選擇來重寫我的存儲過程以“返回”值:


CREATE PROCEDURE foo()

BEGIN

? ? # do stuff...


? ? SELECT 'bar';

END;

然后在 Go 中像任何其他查詢一樣讀取它:


res, _ := db.Query("CALL foo()")

res.Next()

var bar string

res.Scan(&bar)

println(bar)

請注意,此方法也適用于多列和多行。


查看完整回答
反對 回復(fù) 2023-07-17
  • 2 回答
  • 0 關(guān)注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號