在 Node mysql2 库中使用 MySQL 函数

问题描述

这是我当前插入数据的请求:

let record = {
    ip : '127.0.0.1',...
};
conn.query('INSERT INTO events_log SET ?',[record]);

是否可以将 INET6_ATON 函数应用于 IP 而不将其转换为普通查询?这个对象有几十个参数,我不想反汇编。

IP 字段为 varbinary(16) 类型。

解决方法

是的,这是可能的:

let INET6_ATON = { toSqlString: function() { return 'INET6_ATON(' + mysql.escape(ip) + ')'; } };

let record = {
    ip : INET6_ATON,...
};
conn.query('INSERT INTO events_log SET ?',[record]);