node + express + mysql2/promiseでnamedPlaceholdersを使う方法
?とかで書かないので渡す値がわかりやすいです。
オプションで有効にする
mysqlに接続する際にオプションで「namedPlaceholders: true」を指定します。
const mysql = require('mysql2/promise');
const db = mysql.createPool({
host: '127.0.0.1',
port: 3306,
database: 'dbname',
user: 'user',
password: 'pass',
namedPlaceholders: true, // ここ
connectionLimit: 5,
});
const sql = 'SELECT * FROM user WHERE id = :id';
const [ rows, fields ] = await db.execute(sql,{id: 1, dummy: 2});
値を渡すオブジェックとに使わないパラメータが(dummy)が入っていても問題なし。