Go (également connu sous le nom de Golang) est un langage de programmation concurrent, compilé et fortement typé, doté de capacités de récupération de place développées par Google. Ci-dessous, je présenterai quelques opérations sur MySQL à partir de la colonne Go Getting Started Tutorial.
go exploite la base de données mysql. La bibliothèque utilisée est go-sql-driver/mysql Installez directement go get
go get -u github.com/go-sql-driver/mysql
sql.DB<. 🎜>
Les fonctions disponibles pour le type DB sont : 1. Requête (chaîne c, interface args{}…) (*Lignes, erreur), couramment utilisée dans les instructions SELECT2. Exec(c string, args interface{}…) (*Rows, erreur), couramment utilisé avec UPDATE et INSERT3. Prepare(c string) (*Stmt, erreur), autre. les instructions peuvent également être utilisées pour exécuter l'instruction ci-dessus et renvoyer le pointeur Stmt
sql.Stmt
Stmt est une instruction préparée qui peut exécuter des opérations d'instruction de base de données communes. les fonctions sont : Exec(args interface{} …) (Résultat, erreur), étant donné les paramètres et exécute l'instruction préparée, puis renvoie le résultat total de l'instruction//... stmt, err := db.Perpare("INSERT INTO User(user,pwd) VALUES (?, ?)") if err != nil { panic(err) } defer stmt.Close() _, err := stmt.Exec("laoli", "123456") if err != nil { panic(err) } //... //... stmt, err := db.Perpare("DELETE FROM User") if err != nil { panic(err) } defer stmt.Close() _, err := stmt.Exec() if err != nil { panic(err) }
sql.Rows
Rows est la table renvoyée par l'exécution de l'instruction SQL. Rows occupera le cache dans Rows.Next(), si false est renvoyé, il. sera automatiquement libéré du cache.Regardez le code source :
// 源码 func (rs *Rows) Next() bool { var doClose, ok bool withLock(rs.closemu.RLocker(), func() { doClose, ok = rs.nextLocked() }) if doClose { rs.Close() //在这里释放掉了 } return ok }
package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) var db *sql.DB func mian() { db = sql.Open("mysql", "root:123456@tcp(127.0.0.1)/test") if err := db.Ping(); err != nil { panic(err) } } func Insert() { _, err := db.Exec("INSERT INTO User(user, pwd) VALUE (?, ?)", "laowang", "123456") if err != nil { panic(err) } } func SelectRow() { rows, err := db.Query("SELECT * FROM User WHERE user=?", "laowang") if err != nil { panic(err) } //defer rows.Close() //如果后面代码没有循环调用rows.Next(),就需要手动在这里释放一下,不然会一直占用缓存 var user string var pwd string for rows.Next() { row.Scan(&user, &pwd) } print(user, pwd) }
tutoriel sur le langage go sur PHP chinois site web.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!