{"id":43327,"library":"mysql-promisify","title":"mysql-promisify","description":"A promisified wrapper around the popular mysql npm package, providing an async/await interface for MySQL queries, transactions, and connection pooling. Current stable version is 1.0.2, released in late 2020 with low maintenance cadence. Key differentiators: uses custom escape format with ':word' for values and '|word' for identifiers, stateless MySQL class with both pool and connection approaches, built-in transaction support via getTransactionDb(). Lightweight alternative to more heavyweight ORMs like Sequelize.","status":"maintenance","version":"1.0.2","language":"javascript","source_language":"en","source_url":"https://github.com/AoiYamada/mysql-promisify","tags":["javascript","mysql","node","promise"],"install":[{"cmd":"npm install mysql-promisify","lang":"bash","label":"npm"},{"cmd":"yarn add mysql-promisify","lang":"bash","label":"yarn"},{"cmd":"pnpm add mysql-promisify","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core dependency providing MySQL driver functionality","package":"mysql","optional":false}],"imports":[{"note":"Package does not expose ESM exports; CommonJS required","wrong":"import { MySQL } from 'mysql-promisify';","symbol":"MySQL","correct":"const { MySQL } = require('mysql-promisify');"},{"note":"Both destructured and direct property access work","wrong":"const { MySQL } = require('mysql-promisify');","symbol":"MySQL","correct":"const MySQL = require('mysql-promisify').MySQL;"},{"note":"Static method on class, not on instance","wrong":"const query = db.queryFormat(sql, params);","symbol":"MySQL.queryFormat","correct":"const query = MySQL.queryFormat(sql, params);"}],"quickstart":{"code":"const { MySQL } = require('mysql-promisify');\n\nconst db = new MySQL({\n  host: '127.0.0.1',\n  user: 'root',\n  password: process.env.DB_PASSWORD ?? '',\n  database: 'test',\n});\n\nasync function main() {\n  const { results } = await db.query({\n    sql: 'SELECT * FROM test WHERE id = :id',\n    params: { id: 1 }\n  });\n  console.log(results);\n}\nmain().catch(console.error);","lang":"javascript","description":"Creates a MySQL instance and runs a query with named parameter binding using :param syntax."},"warnings":[{"fix":"Use ':paramName' for values and '|paramName' for identifiers in SQL strings","message":"Custom format uses ':word' for values and '|word' for identifiers, not the standard '?' or ':param'","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Obtain a new transaction handle via db.getTransactionDb() for each transaction","message":"Transaction connection released after commit/rollback; instance becomes unusable","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Consider migrating to mysql2/promise for official promise support","message":"Package last updated September 2020; no active development","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Avoid DDL statements inside transactions; refer to MySQL implicit commit documentation","message":"Implicit commit may occur with certain SQL statements (DDL) inside transactions","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.0.2':28 '2020':32 'altern':68 'approach':59 'around':7 'async/await':15 'built':61 'built-in':60 'cadenc':36 'class':53 'connect':22,58 'current':24 'custom':40 'differenti':38 'escap':41 'format':42 'gettransactiondb':66 'heavyweight':71 'identifi':50 'interfac':16 'javascript':75 'key':37 'late':31 'lightweight':67 'like':73 'low':34 'mainten':35 'mysql':2,10,18,52,76 'mysql-promisifi':1 'node':77 'npm':11 'orm':72 'packag':12 'pool':23,56 'popular':9 'promis':78 'promisifi':3,5 'provid':13 'queri':19 'releas':29 'sequel':74 'stabl':25 'stateless':51 'support':64 'transact':20,63 'use':39 'valu':46 'version':26 'via':65 'word':44,48 'wrapper':6","created_at":"2026-06-05T16:59:16.250496+00:00","updated_at":"2026-06-05T16:59:16.250496+00:00","problems":[{"fix":"npm install mysql-promisify --save","cause":"Package not installed or missing from node_modules","error":"Cannot find module 'mysql-promisify'"},{"fix":"Ensure using 'const { MySQL } = require('mysql-promisify'); const db = new MySQL({...});'","cause":"Instance not created correctly or wrong import","error":"TypeError: db.query is not a function"},{"fix":"Set 'timeout' option in MySQL constructor or implement reconnection logic","cause":"MySQL server timeout or idle connection","error":"Error: Connection lost: The server closed the connection."}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/AoiYamada/mysql-promisify","github":"https://github.com/AoiYamada/mysql-promisify","docs":null,"changelog":null,"pypi":null,"npm":"mysql-promisify","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}