res_answer_active_status, err35 := db.Query("SELECT `answer`, `asker`, `closed` FROM `ucp` WHERE `closed` = '0' AND (`answer` = ? OR `asker` = ?)", msg_from_id, msg_from_id)
if err35 != nil {
panic(err35)
}
for res_answer_active_status.Next() {
err36 := res_answer_active_status.Scan(&ucp.Answer, &ucp.Asker, &ucp.Closed)
if err36 != nil {
panic(err36)
}
// TODO: добавьте вот тут spew.Dump
fmt.Println("Got new row from database")
spew.Dump(ucp)
}
"login:pass@tcp(localhost)/dbname?charset=utf8&sql_mode=TRADITIONAL"
"login:pass@tcp(localhost)/dbname?charset=utf8mb4&collation=utf8mb4_unicode_ci&parseTime=true&sql_mode=TRADITIONAL"
db.Query("SELECT `answer`, `asker`, `closed` FROM `ucp` WHERE `closed` = '0' AND (`answer` = '? OR `asker` = ?)", ansewr, asker)
package main
import (
"encoding/json"
"fmt"
"log"
"github.com/davecgh/go-spew/spew"
)
type Template struct {
Name string `json:"name"`
CategoryInfo *TemplateCategory `json:"category_info"`
}
type TemplateCategory struct {
ID int `json:"id"`
Name string `json:"name"`
}
type TemplateCategoryAlias TemplateCategory
func (t *TemplateCategory) UnmarshalJSON(b []byte) error {
s := string(b)
if s == `[]` {
return nil
}
var result TemplateCategoryAlias
if err := json.Unmarshal(b, &result); err != nil {
return err
}
*t = TemplateCategory(result)
return nil
}
func main() {
json1 := []byte(`{
"name": "Мой шаблон",
"category_info": {
"id": 109,
"name": "Тест"
}
}`)
json2 := []byte(`{
"name": "Мой шаблон",
"category_info": []
}`)
var data1 Template
err := json.Unmarshal(json1, &data1)
if err != nil {
log.Fatalf(`json1: %s`, err)
}
var data2 Template
err = json.Unmarshal(json2, &data2)
if err != nil {
log.Fatalf(`json2: %s`, err)
}
fmt.Printf("data1: %+v\n", data1)
fmt.Printf("data1.CategoryInfo: %+v\n\n", data1.CategoryInfo)
fmt.Printf("\n\ndata2: %+v\n", data2)
fmt.Printf("data2.CategoryInfo: %+v\n\n", data2.CategoryInfo)
}
Добавьте перед db.Exec
log.Printf("Close item: %v\n", res_trim_int)
И перед всеми Query
Важно убедиться, что Update отрабатывает раньше, Select ну и за одно посмотрим какие и в какой последовательности срабатывают запросы