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

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

檢查用戶是否已存在于數(shù)據(jù)庫中

檢查用戶是否已存在于數(shù)據(jù)庫中

Go
湖上湖 2022-10-10 19:16:57
如何使用gorm檢查用戶是否已存在于數(shù)據(jù)庫中?如果沒有找到用戶,我似乎找不到正確的方法來執(zhí)行此操作而不會將錯誤記錄到控制臺。到目前為止,這是我的代碼result := models.User{}err := connection.DB.First(&result, "username = ?", user.Username).Errorif err == gorm.ErrRecordNotFound {    if err := connection.DB.Create(&user).Error; err != nil {        return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{            "error": "internal server error",        })    }    return c.Status(fiber.StatusCreated).JSON(fiber.Map{        "message": "user created",    })}if result.Username != "" {    return c.Status(fiber.StatusConflict).JSON(fiber.Map{        "error": "username already exists",    })}return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{    "error": "internal server error",})但是如果創(chuàng)建了一個新用戶,則會向終端打印一條錯誤消息,說明未找到該記錄。
查看完整描述

2 回答

?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗 獲得超6個贊

你也可以使用FirstOrCreate

來自Doc

獲取第一個匹配記錄或在給定條件下創(chuàng)建一個新記錄(僅適用于結(jié)構(gòu)、映射條件)

u := connection.DB.FirstOrCreate(user)


if u.Error != nil {

    return c.Status(fiber.StatusInternalServerError).JSON(

        fiber.Map{

            "error": "Internal server error",

        }

    )

}


if u.RowsAffected == 1 {

    return c.Status(fiber.StatusCreated).JSON(

        fiber.Map{

            "message": "User created successfully",

        }

    )

}


return c.Status(fiber.StatusBadRequest).JSON(

    fiber.Map{

        "error": "Username already exists",

    }

)


查看完整回答
反對 回復(fù) 2022-10-10
?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗 獲得超8個贊

設(shè)法找到一種使用原始 MySQL 的方法。


var exists bool = false

if err := connection.DB.Raw(

    "SELECT EXISTS(SELECT 1 FROM users WHERE username = ?)",

    user.Username).

    Scan(&exists).Error; err != nil {


    return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{

        "error": "internal server error",

    })

}


if exists {


    return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{

        "error": "Username already exists",

    })

}


if err := connection.DB.Create(&user).Error; err != nil {


    return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{


        "error": "internal server error",

    })

}


return c.Status(fiber.StatusCreated).JSON(fiber.Map{


    "message": "User created successfully",

})


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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