当前位置: 首页>>代码示例>>Golang>>正文


Golang mysql.Client类代码示例

本文整理汇总了Golang中mysql.Client的典型用法代码示例。如果您正苦于以下问题:Golang Client类的具体用法?Golang Client怎么用?Golang Client使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Client类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: loadFromSQL

// Load SDB DB score data for territory ts.uid.
func loadFromSQL(db *mysql.Client, ts *territoryScore) {
	query := "SELECT TScoreTotal,TScoreBalance,TScoreTime,name FROM avatars WHERE ID='" + fmt.Sprint(ts.uid) + "'"
	stmt, err := db.Prepare(query)
	if err != nil {
		log.Println(err)
		return
	}

	// Execute statement
	err = stmt.Execute()
	if err != nil {
		log.Println(err)
		return
	}

	var terrScore, terrScoreBalance float64
	var terrScoreTimestamp uint32
	var name string
	stmt.BindResult(&terrScore, &terrScoreBalance, &terrScoreTimestamp, &name)
	for {
		eof, err := stmt.Fetch()
		if err != nil {
			log.Println(err)
			return
		}
		if eof {
			break
		}
	}
	numChunks := countChunks(db, ts.uid)
	Initialize(ts.uid, terrScore, terrScoreBalance, terrScoreTimestamp, name, numChunks)
}
开发者ID:xushiwei,项目名称:ephenation-server,代码行数:33,代码来源:score.go

示例2: UpdateTroll

// met à jour un compte en BD, sans les infos de gestion (comme le mdp)
func (store *MysqlStore) UpdateTroll(db *mysql.Client, c *Compte) (err os.Error) {

	t := c.Troll
	if t == nil {
		fmt.Println("Compte sans données de troll")
		return
	}

	updateProfil := t.ProchainTour > 0 // on ne met pas toujours tout à jour

	sql := "update compte set"
	sql += " x=?, y=?, z=?"
	if updateProfil {
		sql += " ,pv_max=?, pv_actuels=?, fatigue=?, pa=?, vue=?, prochain_tour=?, duree_tour=?, mise_a_jour=?"
	}
	sql += " where id=?"

	stmt, err := db.Prepare(sql)
	if err != nil {
		return
	}
	defer stmt.FreeResult()

	if updateProfil {
		err = stmt.BindParams(t.X, t.Y, t.Z, t.PV_max, t.PV_actuels, t.Fatigue, t.PA, t.Vue, (t.ProchainTour / 1000), t.DureeTour, time.Seconds(), c.trollId)
	} else {
		err = stmt.BindParams(t.X, t.Y, t.Z, c.trollId)
	}
	if err != nil {
		return
	}

	err = stmt.Execute()
	return
}
开发者ID:Chouia,项目名称:Chrall,代码行数:36,代码来源:comptestore.go

示例3: InsertAction

// stocke une action en BD (résultat de sort ou de frappe ou compétence, à l'exclusion des CDM)
func (store *MysqlStore) InsertAction(db *mysql.Client, a *Action) (err error) {

	// on corrige
	if a.Degats > 0 && a.PV == 0 {
		a.PV = a.Degats
	}
	a.Type = AsciiToUTF8([]uint8(a.Type))

	sql := "insert into action"
	sql += "        (date_action, type_action, auteur, type_cible, num_cible, succes, degats, pv, esquive)"
	sql += " values (          ?,           ?,      ?,          ?,         ?,      ?,      ?,  ?,       ?)"

	stmt, err := db.Prepare(sql)
	if err != nil {
		return
	}
	defer stmt.FreeResult()

	succès := "non"
	if a.Succes {
		succès = "oui"
	}

	err = stmt.BindParams(a.Date, a.Type, a.Auteur, a.TypeCible, a.NumCible, succès, a.Degats, a.PV, a.Esquive)
	if err != nil {
		return
	}

	err = stmt.Execute()
	if err != nil {
		return
	}

	return
}
开发者ID:Kassbinette,项目名称:Chrall,代码行数:36,代码来源:actionstore.go

示例4: UpdatePartage

// modifie un partage
// est-ce qu'on pourrait faire ça en une seule requête ?
func (store *MysqlStore) UpdatePartage(db *mysql.Client, troll uint, autreTroll uint, statut string) (err error) {

	sql := "update partage set statut_a=? where troll_a=? and troll_b=?"
	stmt, err := db.Prepare(sql)
	if err != nil {
		return
	}
	defer stmt.FreeResult()
	err = stmt.BindParams(statut, troll, autreTroll)
	if err != nil {
		return
	}
	err = stmt.Execute()
	if err != nil {
		return
	}

	sql = "update partage set statut_b=? where troll_a=? and troll_b=?"
	stmt2, err := db.Prepare(sql)
	defer stmt.FreeResult()
	if err != nil {
		return
	}
	err = stmt2.BindParams(statut, autreTroll, troll)
	if err != nil {
		return
	}
	err = stmt2.Execute()

	return
}
开发者ID:Kassbinette,项目名称:Chrall,代码行数:33,代码来源:partagestore.go

示例5: GetCompte

// lit un compte en base. Renvoie nil si le compte n'existe pas en base.
// Sinon l'appelant est responsable de l'ouverture et de la fermeture de la connexion qu'il fournit
func (store *MysqlStore) GetCompte(db *mysql.Client, trollId uint) (c *Compte, err os.Error) {

	if trollId == 0 {
		fmt.Println("GetCompte> trollId invalide")
		return
	}

	sql := "select statut, mdp_restreint, pv_max, pv_actuels, x, y, z, fatigue, pa, vue, prochain_tour, duree_tour, mise_a_jour"
	sql += " from compte where id=" + strconv.Uitoa(trollId)

	err = db.Query(sql)
	if err != nil {
		return
	}

	result, err := db.UseResult()
	if err != nil {
		return
	}
	defer result.Free()

	row := result.FetchRow()
	if row == nil {
		return
	}
	c = rowToCompte(trollId, row)

	return
}
开发者ID:Chouia,项目名称:Chrall,代码行数:31,代码来源:comptestore.go

示例6: GetPartageurs

// renvoie la liste des trolls avec qui le troll passé a un partage actif
func (store *MysqlStore) GetPartageurs(db *mysql.Client, trollId int) ([]int, error) {
	st := strconv.Itoa(trollId)
	sql := "select troll_a, troll_b from partage where (troll_a=" + st + " or troll_b=" + st + ") and statut_a='on' and statut_b='on'"
	err := db.Query(sql)
	if err != nil {
		return nil, err
	}
	result, err := db.UseResult()
	if err != nil {
		return nil, err
	}
	defer result.Free()

	amis := make([]int, 0, 5)
	for {
		row := result.FetchRow()
		if row == nil {
			break
		}
		r0 := fieldAsInt(row[0])
		r1 := fieldAsInt(row[1])
		if r0 == trollId {
			amis = append(amis, r1)
		} else {
			amis = append(amis, r0)
		}
	}

	return amis, nil

}
开发者ID:Kassbinette,项目名称:Chrall,代码行数:32,代码来源:partagestore.go

示例7: SaveNote

// stocke une note en BD
func (store *MysqlStore) SaveNote(db *mysql.Client, note *Note) error {
	if note.Id > 0 {
		// update
		// TODO utiliser comme clef l'id ET l'auteur, par sécurité (qu'on ne puisse pas effacer une note de quelqu'un d'autre) (pareil pour le delete)
		fmt.Println("update de note")
	} else {
		// insert
		sql := "insert into note (auteur, type_sujet, id_sujet, x_sujet, y_sujet, z_sujet, partage, date_changement, contenu, diplo)"
		sql += "          values (     ?,          ?,        ?,       ?,       ?,       ?,       ?,               ?,       ?,     ?)"

		stmt, err := db.Prepare(sql)
		if err != nil {
			return err
		}
		defer stmt.FreeResult()

		seconds := time.Seconds()

		err = stmt.BindParams(note.Auteur, note.TypeSujet, note.IdSujet, note.XSujet, note.YSujet, note.ZSujet, note.Partage, seconds, note.Contenu, note.Diplo)
		if err != nil {
			fmt.Printf("Erreur stockage (in) note : %s\n", err.Error()) // FIXME l'erreur ne semble pas retransmise ???
			return err
		}

		err = stmt.Execute()
		if err != nil {
			return err
		}
	}
	return nil
}
开发者ID:Kassbinette,项目名称:Chrall,代码行数:32,代码来源:notestore.go

示例8: GetAllPartages

// récupère toutes les infos de partage, acceptés ou non, impliquant un troll
func (store *MysqlStore) GetAllPartages(db *mysql.Client, trollId uint) (partages []*Partage, err error) {

	sql := "select troll_a, troll_b, statut_a, statut_b from partage where troll_a=? or troll_b=?"
	stmt, err := db.Prepare(sql)
	if err != nil {
		return
	}
	defer stmt.FreeResult()
	err = stmt.BindParams(trollId, trollId)
	if err != nil {
		return
	}

	err = stmt.Execute()
	if err != nil {
		return
	}
	r := new(Partage)
	stmt.BindResult(&r.TrollA, &r.TrollB, &r.StatutA, &r.StatutB)
	partages = make([]*Partage, 0, 10)
	for {
		eof, _err := stmt.Fetch()
		if _err != nil || eof {
			return partages, _err
		}
		p := &Partage{r.TrollA, r.TrollB, r.StatutA, r.StatutB} // on dirait qu'on ne peut pas dupliquer l'objet plus simplement
		partages = append(partages, p)
	}
	return
}
开发者ID:Kassbinette,项目名称:Chrall,代码行数:31,代码来源:partagestore.go

示例9: DeletePartage

func (store *MysqlStore) DeletePartage(db *mysql.Client, troll uint, autreTroll uint) (err error) {
	sql := "delete from partage where (troll_a=? and troll_b=?) or (troll_b=? and troll_a=?)"
	stmt, err := db.Prepare(sql)
	if err != nil {
		return
	}
	defer stmt.FreeResult()
	err = stmt.BindParams(troll, autreTroll, troll, autreTroll)
	if err != nil {
		return
	}
	err = stmt.Execute()
	return
}
开发者ID:Kassbinette,项目名称:Chrall,代码行数:14,代码来源:partagestore.go

示例10: MySQLNewConnection

func MySQLNewConnection(sock string, user string, password string, database string) (Connection, os.Error) {
	var err os.Error
	var db *mysql.Client
	db, err = mysql.DialUnix(sock, user, password, database)
	if err != nil {
		err = db.Close()
		return nil, err
	}

	conn := new(MySQL)
	conn.Database = database
	conn.db = db
	return conn, err
}
开发者ID:jonochang,项目名称:Gorel,代码行数:14,代码来源:mysql.go

示例11: CleanAndSaveSoapItems

// supprime la vue de trollID puis sauvegarde des observations reçues par SOAP de MH, observées juste maintenant par trollId
func (store *MysqlStore) CleanAndSaveSoapItems(db *mysql.Client, trollId uint, items []*SoapItem) (err error) {
	seconds := time.Seconds()

	sql := "delete from observation where auteur=" + strconv.Uitoa(trollId)
	stmt, err := db.Prepare(sql)
	if err != nil {
		return
	}
	err = stmt.Execute()
	if err != nil {
		return
	}
	stmt.FreeResult() // nécessaire ?

	sql = "insert into observation"
	sql += "        (auteur, num, date, type, nom, x, y, z)"
	sql += " values (      ?,  ?,    ?,    ?,   ?, ?, ?, ?)"

	stmt, err = db.Prepare(sql)
	if err != nil {
		return
	}
	defer stmt.FreeResult()

	for _, i := range items {
		//~ fmt.Printf(" saving %+v\n", i)
		var t string
		if i.Type == "TROLL" {
			t = "troll"
		} else if i.Type == "MONSTRE" {
			t = "monstre"
		} else if i.Type == "LIEU" {
			t = "lieu"
		} else if i.Type == "TRESOR" {
			t = "tresor"
		} else {
			continue
		}

		err = stmt.BindParams(trollId, i.Numero, seconds, t, i.Nom, i.PositionX, i.PositionY, i.PositionN)
		if err != nil {
			return
		}
		err = stmt.Execute()
	}

	return
}
开发者ID:Kassbinette,项目名称:Chrall,代码行数:49,代码来源:observationstore.go

示例12: ObservationsAutour

func (store *MysqlStore) ObservationsAutour(db *mysql.Client, x int, y int, z int, dist int, trollId int, amis []int, withTresors bool) (observations []*Observation, err os.Error) {

	sql := "select auteur, num, date, type, nom, x, y, z from observation where"
	sql += " x>" + strconv.Itoa(x-dist-1) + " and x<" + strconv.Itoa(x+dist+1)
	sql += " and y>" + strconv.Itoa(y-dist-1) + " and y<" + strconv.Itoa(y+dist+1)
	sql += " and z>" + strconv.Itoa(z-dist/2-1) + " and z<" + strconv.Itoa(z+dist/2+1)

	if !withTresors {
		sql += " and type<>'tresor'"
	}

	sql += " and auteur in (" + strconv.Itoa(trollId)
	for _, id := range amis {
		sql += "," + strconv.Itoa(id)
	}
	sql += ") order by type, num, date desc"

	fmt.Println("SQL : ", sql)

	stmt, err := db.Prepare(sql)
	defer stmt.FreeResult()
	if err != nil {
		return
	}
	err = stmt.Execute()
	if err != nil {
		return
	}
	r := new(Observation)
	stmt.BindResult(&r.Auteur, &r.Num, &r.Date, &r.Type, &r.Nom, &r.X, &r.Y, &r.Z)
	observations = make([]*Observation, 0, 20)

	for {
		eof, err := stmt.Fetch()
		if err != nil || eof {
			return
		}
		//fmt.Printf("r : %+v\n", r)
		if len(observations) > 0 && r.Num == observations[len(observations)-1].Num {
			continue
		}
		o := &Observation{r.Auteur, r.Num, r.Type, r.Date, r.Nom, r.X, r.Y, r.Z}
		observations = append(observations, o)
	}

	return
}
开发者ID:Chouia,项目名称:Chrall,代码行数:47,代码来源:observationstore.go

示例13: saveToSQL

func saveToSQL(db *mysql.Client, ts *territoryScore) {
	ts.modified = false
	query := "UPDATE avatars SET TScoreTotal=?,TScoreBalance=?,TScoreTime=? WHERE ID='" + fmt.Sprint(ts.uid) + "'"

	stmt, err := db.Prepare(query)
	if err != nil {
		log.Println(err)
		return
	}

	stmt.BindParams(ts.Score, ts.ScoreBalance, ts.TimeStamp.Unix())

	err = stmt.Execute()
	if err != nil {
		log.Println(err)
		return
	}
}
开发者ID:xushiwei,项目名称:ephenation-server,代码行数:18,代码来源:score.go

示例14: SearchObservations

func (store *MysqlStore) SearchObservations(db *mysql.Client, tok string, trollId int, amis []int) (observations []*Observation, err error) {
	sql := "select auteur, num, date, type, nom, x, y, z from observation where"
	if num, _ := strconv.Atoi(tok); num != 0 {
		sql += " num=" + tok
	} else {
		sql += " nom like '%" + tok + "%'"
	}
	sql += " and auteur in (" + strconv.Itoa(trollId)
	for _, id := range amis {
		sql += "," + strconv.Itoa(id)
	}
	sql += ") order by num, date desc limit 100"

	fmt.Println("SQL : ", sql)

	stmt, err := db.Prepare(sql)
	if err != nil {
		return
	}
	defer stmt.FreeResult()
	err = stmt.Execute()
	if err != nil {
		return
	}
	r := new(Observation)
	stmt.BindResult(&r.Auteur, &r.Num, &r.Date, &r.Type, &r.Nom, &r.X, &r.Y, &r.Z)
	observations = make([]*Observation, 0, 20)

	for {
		eof, _err := stmt.Fetch()
		if _err != nil || eof {
			return observations, _err
		}
		if len(observations) > 0 && r.Num == observations[len(observations)-1].Num { // dédoublonnage
			continue
		}
		o := &Observation{r.Auteur, r.Num, r.Type, r.Date, r.Nom, r.X, r.Y, r.Z}
		observations = append(observations, o)
	}

	return
}
开发者ID:Kassbinette,项目名称:Chrall,代码行数:42,代码来源:observationstore.go

示例15: InsertPartage

// sauvegarde un nouveau partage (à l'état de proposition de a pour b)
func (store *MysqlStore) InsertPartage(db *mysql.Client, trollA uint, trollB uint) (err error) {
	sql := "insert ignore into"
	sql += " partage (troll_a, troll_b)"
	sql += " values (       ?,       ?)"

	stmt, err := db.Prepare(sql)
	if err != nil {
		return
	}
	defer stmt.FreeResult()

	err = stmt.BindParams(trollA, trollB)
	if err != nil {
		return
	}

	err = stmt.Execute()

	return
}
开发者ID:Kassbinette,项目名称:Chrall,代码行数:21,代码来源:partagestore.go


注:本文中的mysql.Client类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。