将 MSSQL 准备好的语句迁移到 MariaDB

Posted

技术标签:

【中文标题】将 MSSQL 准备好的语句迁移到 MariaDB【英文标题】:Migrate MSSQL prepared statement to MariaDB 【发布时间】:2021-11-19 05:51:15 【问题描述】:

我在下面的 MSSQL 中有以下准备好的语句代码示例:

const db = require('../database.js');    

module.exports = 
      getUserName: async name => db(async pool => 
        await pool.request()
        .input('name', dataTypes.VarChar, name)
        .query(`SELECT * FROM person WHERE name = @name;`))
    ;

我一直在查看 MariaDB 文档和在线资源,但找不到合适的文档并弄明白。是否可以在 MariaDB 中创建准备好的语句?或者任何等同于 MariaDB 的?

【问题讨论】:

您使用哪个连接器或驱动程序连接到数据库?如果您想要一个简单的选项,MariaDB NodeJS connector 可能是一个选项。 【参考方案1】:

我的 node.js 知识有限,但我怀疑它:

const db = require('../database.js');    

module.exports = 
      getUserName: async name => db(async pool => 
        await pool.request()
        .query('SELECT * FROM person WHERE name = ?', name))
    ;

Prepared 语句是 MariaDB 的原生部分。 参考:基于this等其他答案。

使用准备好的语句比在 nodejs 文档中常见的所有显式转义要好。

【讨论】:

以上是关于将 MSSQL 准备好的语句迁移到 MariaDB的主要内容,如果未能解决你的问题,请参考以下文章

mssql-jdbc MS SQL Server JDBC 驱动程序准备好的语句缓存性能问题与 Hikari CP

是否可以在没有准备好的语句(Node.js 和 MSSQL)的情况下防止 SQL 注入

将 Oracle upsert 转换为 PostgreSQL 准备好的语句

如何在 mariadb 或 mysql 中创建临时表?

mariadb 怎么换mysql

带有 SQL Server 和准备好的语句的 PHP PDO