forked fromjane0009/zig-postgres
- Notifications
You must be signed in to change notification settings - Fork2
rofrol/zig-postgres
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Light bindings around Postgreslibpq
This is tested with zig0.8
Installinglibpq
on debian linux
sudo apt-get install libpq-dev
There is also native zig client in pre-alpha statushttps://github.com/star-tek-mb/pgz
Example of importing and usinghttps://github.com/zig-postgres/zig-postgres-template
Running examples or tests requiresdb
url attribute, for example
zig build test -Ddb=postgresql://db_url/mydb
constPg=@import("postgres").Pg;vargpa=std.heap.GeneralPurposeAllocator(.{}){};constallocator=&gpa.allocator;deferstd.debug.assert(!gpa.deinit());vardb=tryPg.connect(allocator,"postgresql://root@postgresURL:26257?sslmode=disable");
constschema=\\CREATE DATABASE root;\\CREATE TABLE IF NOT EXISTS users (id INT, name TEXT, age INT); ;_=trydb.exec(schema);
Be mindful that this query, usesstruct name
as lowercase letters fortable
name.
constUsers=struct {id:i16,name: []constu8,age:i16, };_=trydb.insert(Users{ .id=1, .name="Charlie", .age=20 });_=trydb.insert(Users{ .id=2, .name="Steve", .age=25 });_=trydb.insert(Users{ .id=3, .name="Karl", .age=25 });_=trydb.insert(&[_]Users{Users{ .id=4, .name="Tony", .age=25 },Users{ .id=5, .name="Sara", .age=32 },Users{ .id=6, .name="Fred", .age=11 }, });
_=trydb.execValues("SELECT * FROM users WHERE name = {s}", .{"Charlie"});_=trydb.execValues("INSERT INTO users (id, name, age) VALUES ({d}, {s}, {d})", .{5,"Tom",32 });
varresult=trydb.execValues("SELECT * FROM users WHERE id = {d}", .{2});varuser=result.parse(Users,null).?;print("{d}\n", .{user.id});print("{s}\n", .{user.name});
varresults=trydb.execValues("SELECT * FROM users WHERE age = {d}", .{25});while (results.parse(Users,null))|user| {print("{s}\n", .{user.name});}
varresult=trydb.execValues("SELECT * FROM users WHERE name = {s}", .{"Charlie"});varuser=result.parse(Users,null}).?;if(user)print("{s}\n", .{user.name});
Many thanks for thisrepository
About
Zig wrapper for postgres
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Languages
- Zig100.0%