🐬 MySQL API
Parameterized queries and transactions over a pooled mysql2 connection.
Connection
ping
Verify connectivity to the database.
ts
ping(): Promise<{ pong: boolean }>ts
const mysql = zedgi.mysql();
await mysql.ping(); // { pong: true }python
mysql = zedgi.mysql()
mysql.ping() # {'pong': True}http
POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "mysql",
"method": "ping",
"payload": {}
}Queries
query
Run a parameterized SQL query. Returns rows and row count.
ts
query(sql, params?): Promise<{ rows, rowCount }>ts
const mysql = zedgi.mysql();
const { rows } = await mysql.query(
'SELECT id, email FROM users WHERE age > $1',
[21]
);python
mysql = zedgi.mysql()
result = mysql.query(
'SELECT id, email FROM users WHERE age > %s',
[21]
)
print(result["rows"])http
POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "mysql",
"method": "query",
"payload": {
"sql": "SELECT id, email FROM users WHERE age > $1",
"params": [
21
]
}
}transaction
Run multiple statements atomically in one transaction.
ts
transaction(statements): Promise<results[]>ts
const mysql = zedgi.mysql();
await mysql.transaction([
{ sql: 'INSERT INTO orders(user_id) VALUES ($1)', params: [1] },
{ sql: 'UPDATE users SET orders = orders + 1 WHERE id = $1', params: [1] },
]);python
mysql = zedgi.mysql()
mysql.transaction([
{"sql": "INSERT INTO orders(user_id) VALUES (%s)", "params": [1]},
{"sql": "UPDATE users SET orders = orders + 1 WHERE id = %s", "params": [1]},
])http
POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "mysql",
"method": "transaction",
"payload": {
"statements": [
{
"sql": "INSERT INTO orders(user_id) VALUES ($1)",
"params": [
1
]
}
]
}
}