1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/loveuer-gourm

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
delete.go 915
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
loveuer Отправлено 02.12.2019 16:36 a535e9f
package gourm
import "reflect"
import "fmt"
func (d *DB) Delete(val ...interface{}) error {
one := val[0]
if reflect.TypeOf(one).Kind() != reflect.Ptr {
return fmt.Errorf("delete target not a ptr")
}
if reflect.TypeOf(one).Elem().Kind() != reflect.Struct {
return fmt.Errorf("delete target not a struct")
}
rflctVal := reflect.ValueOf(one).Elem()
tablename := getTableName(rflctVal)
if len(val) == 1 {
primaryKey := getPrimaryKey(rflctVal)
if primaryKey == "" {
return fmt.Errorf("no target imf")
}
primaryVal := getPrimaryVal(rflctVal)
sentence := fmt.Sprintf("delete from %s where %s = '%v'", tablename, primaryKey, primaryVal)
_, err = dbConn.Exec(sentence)
return err
} else if len(val) == 3 {
sentence := fmt.Sprintf("delete from %s where %s = '%v'", tablename, val[1], val[2])
_, err = dbConn.Exec(sentence)
return err
}
return fmt.Errorf("length of params err")
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/loveuer-gourm.git
git@api.gitlife.ru:oschina-mirror/loveuer-gourm.git
oschina-mirror
loveuer-gourm
loveuer-gourm
master