Слияние кода завершено, страница обновится автоматически
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 )