sta*_*af1 5 mysql prepared-statement node.js
目前,在 node.js 中,如果我想在 MySQL 表的多列中搜索一个字符串,我必须这样做:
mysqlConnection.query(
"SELECT * FROM my_table WHERE column_a LIKE ? OR column_b LIKE ? OR column_c LIKE ?",
[searchString, searchString, searchString],
callback
);
Run Code Online (Sandbox Code Playgroud)
我希望能够这样做:
mysqlConnection.query(
"SELECT * FROM my_table WHERE column_a LIKE ? OR column_b LIKE ? OR column_c LIKE ?",
searchString, callback
);
Run Code Online (Sandbox Code Playgroud)
或者甚至可以使用命名参数:
mysqlConnection.query(
"SELECT * FROM my_table WHERE column_a LIKE :searchString OR column_b LIKE :searchString OR column_c LIKE :searchString",
{searchString: "needle"},
callback
);
Run Code Online (Sandbox Code Playgroud)
有什么办法可以做到吗?
您可以在创建数据库池连接时启用命名参数。
const connection = mysql.createPool({
...yourConfig,
namedPlaceholders: true,
});
Run Code Online (Sandbox Code Playgroud)
编辑:正如 @robertklep 所解释的,它仅适用于 mysql2 npm 包