Modules@robinpath/mysql
mysql

@robinpath/mysql

0.1.5Node.jsPublic

MySQL/MariaDB client with connection pooling, parameterized queries, transactions, and CRUD operations

MySQL

MySQL/MariaDB client with connection pooling, parameterized queries, transactions, and CRUD operations

Package: @robinpath/mysql | Category: Database | Type: Utility

Authentication

mysql.connect {"host": "localhost", "user": "root", "database": "mydb"}

Call this once at the start of your script before using any other function. Credentials persist for the duration of the script execution.

Use Cases

Use the mysql module when you need to:

  • Execute SQL query -- Use mysql.query to perform this operation
  • Insert a row -- Use mysql.insert to perform this operation
  • Insert multiple rows -- Use mysql.insertMany to perform this operation
  • Update rows -- Use mysql.update to perform this operation
  • Delete rows -- Use mysql.remove to perform this operation

Quick Reference

FunctionDescriptionReturns
connectConnect to MySQL database{name, connected}
queryExecute SQL queryQuery results
insertInsert a row{insertId, affectedRows}
insertManyInsert multiple rows{affectedRows}
updateUpdate rows{affectedRows}
removeDelete rows{affectedRows}
transactionExecute queries in transaction{success, results}
tablesList all tablesTable names
describeDescribe table structureColumn definitions
countCount rowsRow count
closeClose connection pooltrue
closeAllClose all connection poolstrue

Functions

connect

Connect to MySQL database

Module: mysql | Returns: object -- {name, connected}

mysql.connect {"host": "localhost", "user": "root", "database": "mydb"}
ParameterTypeRequiredDescription
optionsobjectYes{host, port, user, password, database, name, connectionLimit}

query

Execute SQL query

Module: mysql | Returns: array -- Query results

mysql.query "SELECT * FROM users WHERE id = ?" [1]
ParameterTypeRequiredDescription
sqlstringYesSQL query
paramsarrayNoQuery parameters
connectionstringNoConnection name

insert

Insert a row

Module: mysql | Returns: object -- {insertId, affectedRows}

mysql.insert "users" {"name": "Alice", "email": "alice@example.com"}
ParameterTypeRequiredDescription
tablestringYesTable name
dataobjectYesColumn values
connectionstringNoConnection name

insertMany

Insert multiple rows

Module: mysql | Returns: object -- {affectedRows}

mysql.insertMany "users" [{"name": "Alice"}, {"name": "Bob"}]
ParameterTypeRequiredDescription
tablestringYesTable name
rowsarrayYesArray of row objects
connectionstringNoConnection name

update

Update rows

Module: mysql | Returns: object -- {affectedRows}

mysql.update "users" {"name": "Bob"} "id = ?" [1]
ParameterTypeRequiredDescription
tablestringYesTable name
dataobjectYesColumns to update
wherestringYesWHERE clause
paramsarrayNoWHERE params
connectionstringNoConnection name

remove

Delete rows

Module: mysql | Returns: object -- {affectedRows}

mysql.remove "users" "id = ?" [1]
ParameterTypeRequiredDescription
tablestringYesTable name
wherestringYesWHERE clause
paramsarrayNoWHERE params
connectionstringNoConnection name

transaction

Execute queries in transaction

Module: mysql | Returns: object -- {success, results}

mysql.transaction [{"sql": "INSERT INTO users (name) VALUES (?)", "params": ["Alice"]}]
ParameterTypeRequiredDescription
queriesarrayYesArray of {sql, params}
connectionstringNoConnection name

tables

List all tables

Module: mysql | Returns: array -- Table names

mysql.tables
ParameterTypeRequiredDescription
connectionstringNoConnection name

describe

Describe table structure

Module: mysql | Returns: array -- Column definitions

mysql.describe "users"
ParameterTypeRequiredDescription
tablestringYesTable name
connectionstringNoConnection name

count

Count rows

Module: mysql | Returns: number -- Row count

mysql.count "users" "active = ?" [true]
ParameterTypeRequiredDescription
tablestringYesTable name
wherestringNoWHERE clause
paramsarrayNoWHERE params
connectionstringNoConnection name

close

Close connection pool

Module: mysql | Returns: boolean -- true

mysql.close
ParameterTypeRequiredDescription
connectionstringNoConnection name

closeAll

Close all connection pools

Module: mysql | Returns: boolean -- true

mysql.closeAll
ParameterTypeRequiredDescription
(none)NoCall with no arguments

Error Handling

All functions throw on failure. Common errors:

ErrorCause
MySQL connection "..." not found. Call mysql.connect first.Check the error message for details
@desc "Query and validate result"
do
  set $result as mysql.query "SELECT * FROM users WHERE id = ?" [1]
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. Multi-step MySQL workflow

Chain multiple mysql operations together.

@desc "Connect, query, and more"
do
  set $r_connect as mysql.connect {"host": "localhost", "user": "root", "database": "mydb"}
  set $r_query as mysql.query "SELECT * FROM users WHERE id = ?" [1]
  set $r_insert as mysql.insert "users" {"name": "Alice", "email": "alice@example.com"}
  print "All operations complete"
enddo

2. Safe connect with validation

Check results before proceeding.

@desc "Connect and validate result"
do
  set $result as mysql.connect {"host": "localhost", "user": "root", "database": "mydb"}
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • postgres -- PostgreSQL module for complementary functionality
  • mongo -- Mongo module for complementary functionality
  • redis -- Redis module for complementary functionality
  • supabase -- Supabase module for complementary functionality
  • firebase -- Firebase module for complementary functionality

Versions (1)

VersionTagPublished
0.1.5latest1 months ago
Install
$ robinpath add @robinpath/mysql

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.5
LicenseMIT
Unpacked Size11.4 KB
Versions1
Weekly Downloads21
Total Downloads21
Stars0
Last Publish1 months ago
Created1 months ago

Category

data