|
|
|
@ -76,10 +76,29 @@ export default class Database {
|
|
|
|
|
*
|
|
|
|
|
* @example
|
|
|
|
|
* ```ts
|
|
|
|
|
* // for sqlite & postgres
|
|
|
|
|
* // INSERT example
|
|
|
|
|
* const result = await db.execute(
|
|
|
|
|
* "INSERT into todos (id, title, status) VALUES ($1, $2, $3)",
|
|
|
|
|
* [ todos.id, todos.title, todos.status ]
|
|
|
|
|
* );
|
|
|
|
|
* // UPDATE example
|
|
|
|
|
* const result = await db.execute(
|
|
|
|
|
* "UPDATE todos SET title = $1, completed = $2 WHERE id = $3",
|
|
|
|
|
* [ todos.title, todos.status, todos.id ]
|
|
|
|
|
* );
|
|
|
|
|
*
|
|
|
|
|
* // for mysql
|
|
|
|
|
* // INSERT example
|
|
|
|
|
* const result = await db.execute(
|
|
|
|
|
* "INSERT into todos (id, title, status) VALUES (?, ?, ?)",
|
|
|
|
|
* [ todos.id, todos.title, todos.status ]
|
|
|
|
|
* );
|
|
|
|
|
* // UPDATE example
|
|
|
|
|
* const result = await db.execute(
|
|
|
|
|
* "UPDATE todos SET title = ?, completed = ? WHERE id = ?",
|
|
|
|
|
* [ todos.title, todos.status, todos.id ]
|
|
|
|
|
* );
|
|
|
|
|
* ```
|
|
|
|
|
*/
|
|
|
|
|
async execute(query: string, bindValues?: unknown[]): Promise<QueryResult> {
|
|
|
|
@ -91,13 +110,11 @@ export default class Database {
|
|
|
|
|
values: bindValues ?? [],
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
lastInsertId,
|
|
|
|
|
rowsAffected,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* **select**
|
|
|
|
|
*
|
|
|
|
@ -105,9 +122,15 @@ export default class Database {
|
|
|
|
|
*
|
|
|
|
|
* @example
|
|
|
|
|
* ```ts
|
|
|
|
|
* // for sqlite & postgres
|
|
|
|
|
* const result = await db.select(
|
|
|
|
|
* "SELECT * from todos WHERE id = $1", id
|
|
|
|
|
* );
|
|
|
|
|
*
|
|
|
|
|
* // for mysql
|
|
|
|
|
* const result = await db.select(
|
|
|
|
|
* "SELECT * from todos WHERE id = ?", id
|
|
|
|
|
* );
|
|
|
|
|
* ```
|
|
|
|
|
*/
|
|
|
|
|
async select<T>(query: string, bindValues?: unknown[]): Promise<T> {
|
|
|
|
|