db

package module
v0.0.0-...-a84fb2e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2020 License: MIT Imports: 7 Imported by: 0

README

TinyPHP-DB

package main

import (
	"github.com/kimkit/tinyphp"
	"github.com/kimkit/tinyphp-db"
	"github.com/kimkit/tinyphp/std"
)

func init() {
    db.RegisterDB()
    db.AddDB("local", &db.DBConfig{DriverName: "mysql", DSN: "root:123456@tcp(localhost)/"})
}

func main() {
	src := `
$db = get_db("local")->ok();
$list = $db->query("show databases");
var_dump(json_encode($list));

$db->exec("drop database if exists a");
$db->exec("create database a");
$db->exec("create table a.b (c int, d int)");
$rowsAffected = $db->exec("insert into a.b values (?, ?)", 1, 2)->ok();
var_dump($rowsAffected);
$lastInsertId = $db->insert("insert into a.b values (?, ?)", 3, 4)->ok();
var_dump($lastInsertId);
$list = $db->query("select * from a.b");
var_dump(json_encode($list));

$tx = $db->begin()->ok();
$list = $tx->query("select * from a.b");
var_dump(json_encode($list));
$rowsAffected = $tx->exec("insert into a.b values (?, ?)", 1, 2)->ok();
var_dump($rowsAffected);
$lastInsertId = $tx->insert("insert into a.b values (?, ?)", 3, 4)->ok();
var_dump($lastInsertId);
var_dump($tx->commit()->ok()); // $tx->rollback();
    `
	stmts, err := tinyphp.ParseSrc(src)
	if err != nil {
		panic(err)
	}
	store := tinyphp.NewStore(std.Funcs, std.Methods)
	if _, err := tinyphp.RunStmts(stmts, store); err != nil {
		panic(err)
	}
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound = fmt.Errorf("not found")
)

Functions

func AddDB

func AddDB(name string, config *DBConfig)

func FetchAll

func FetchAll(rows *sql.Rows, err error) ([]map[string]interface{}, error)

func GetDBClient

func GetDBClient(name string) (*sql.DB, error)

func LastInsertId

func LastInsertId(result sql.Result, err error) (int64, error)

func RegisterDB

func RegisterDB()

func RowsAffected

func RowsAffected(result sql.Result, err error) (int64, error)

Types

type DB

type DB struct {
	// contains filtered or unexported fields
}

func GetDB

func GetDB(name string) (*DB, error)

func (*DB) GetClient

func (db *DB) GetClient() (*sql.DB, error)

func (*DB) GetDSN

func (db *DB) GetDSN() string

func (*DB) GetDriverName

func (db *DB) GetDriverName() string

func (*DB) TypeName

func (db *DB) TypeName() string

type DBConfig

type DBConfig struct {
	DriverName string `json:"driver" yaml:"driver"`
	DSN        string `json:"dsn" yaml:"dsn"`
	// ConnMaxIdleTime int `json:"connmaxidletime" yaml:"connmaxidletime"`
	ConnMaxLifetime int `json:"connmaxlifetime" yaml:"connmaxlifetime"`
	MaxIdleConns    int `json:"maxidleconns" yaml:"maxidleconns"`
	MaxOpenConns    int `json:"maxopenconns" yaml:"maxopenconns"`
}

type Tx

type Tx struct {
	// contains filtered or unexported fields
}

func NewTx

func NewTx(tx *sql.Tx) *Tx

func (*Tx) GetTx

func (tx *Tx) GetTx() *sql.Tx

func (*Tx) TypeName

func (tx *Tx) TypeName() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL