|
|
7 ay önce | |
|---|---|---|
| .. | ||
| README.md | 7 ay önce | |
| go.mod | 7 ay önce | |
| pizzasql.go | 7 ay önce | |
Go client library for PizzaSQL - a simple, lightweight SQL database with HTTP API.
go get github.com/pizzasql/pizzasql-go
package main
import (
"fmt"
"log"
"github.com/pizzasql/pizzasql-go"
)
func main() {
// Connect to database
db, err := pizzasql.Connect("http://localhost:8080/mydb", "")
if err != nil {
log.Fatal(err)
}
// Execute a query
rows, err := db.SQL("SELECT * FROM users")
if err != nil {
log.Fatal(err)
}
// Process results
for _, row := range rows {
fmt.Printf("User ID: %v, Name: %v\n", row["id"], row["name"])
}
}
db, err := pizzasql.Connect(
"https://pizzabase.cloud/my_org/sql/my_db:32131",
"a78tsda68bdt6ad5afsd65saf5sd5a7d6sd87asy8d9aysnd7ay==",
)
if err != nil {
log.Fatal(err)
}
rows, err := db.SQL("SELECT 42 as answer")
if err != nil {
log.Fatal(err)
}
// Create table
_, err = db.SQL(`
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE
)
`)
if err != nil {
log.Fatal(err)
}
// Insert data
_, err = db.SQL(`
INSERT INTO users (id, name, email)
VALUES (1, 'Alice', 'alice@example.com')
`)
if err != nil {
log.Fatal(err)
}
rows, err := db.SQL("SELECT * FROM users")
if err != nil {
log.Fatal(err)
}
// Extract specific field
var userIDs []interface{}
for _, row := range rows {
userIDs = append(userIDs, row["id"])
}
fmt.Println(userIDs) // [1, 2, 3, ...]
// Export entire database as SQL
data, err := db.Export("", "sql")
if err != nil {
log.Fatal(err)
}
// Export specific table as CSV
csvData, err := db.Export("users", "csv")
if err != nil {
log.Fatal(err)
}
// Save to file
err = os.WriteFile("users.csv", csvData, 0644)
if err != nil {
log.Fatal(err)
}
// Read CSV file
data, err := os.ReadFile("users.csv")
if err != nil {
log.Fatal(err)
}
// Import with table creation
err = db.Import(data, "csv", true)
if err != nil {
log.Fatal(err)
}
Creates a new PizzaSQL client connection.
Parameters:
uri - Database URI (e.g., http://localhost:8080/mydb)apiKey - Optional API key for authenticationReturns:
*Client - Connected client instanceerror - Error if connection failsExecutes a SQL query and returns the results.
Parameters:
query - SQL query stringReturns:
[]Row - Slice of rows (each row is map[string]interface{})error - Error if query failsExports database or table data.
Parameters:
table - Table name (empty string for entire database)format - Export format: "sql" or "csv"Returns:
[]byte - Exported dataerror - Error if export failsImports data into the database.
Parameters:
data - Data to importformat - Import format: "sql" or "csv"createTable - Create table if it doesn't exist (CSV only)Returns:
error - Error if import failsAll methods return errors following Go conventions. Always check for errors:
rows, err := db.SQL("SELECT * FROM users")
if err != nil {
log.Printf("Query failed: %v", err)
return
}
MIT