Node modules 在节点mysql2库中使用MySQL函数
这是我当前插入数据的请求:Node modules 在节点mysql2库中使用MySQL函数,node-modules,node-mysql,node-mysql2,Node Modules,Node Mysql,Node Mysql2,这是我当前插入数据的请求: let record = { ip : '127.0.0.1', ... }; conn.query('INSERT INTO events_log SET ?', [record]); 是否可以对IP应用INET6\u ATON函数而不将其转换为普通查询?这个对象中有几十个参数,我不想分解它 IP字段是varbinary(16)类型。是,可能: let INET6_ATON = { toSqlString: function() { return
let record = {
ip : '127.0.0.1',
...
};
conn.query('INSERT INTO events_log SET ?', [record]);
是否可以对IP应用INET6\u ATON
函数而不将其转换为普通查询?这个对象中有几十个参数,我不想分解它
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]);
INET6\u ATON(?)
应该可以正常工作。您可以在占位符周围放置函数,但不要引用占位符,因为这会使占位符成为字符串。@user3783243您的意思是let ip='INET6_-ATON(127.0.0.1)'代码>?如果数据太长,将INET6\u ATON更改为123INET6\u ATON也不会触发错误。不,我的意思是在查询中conn.query('INSERT-INTO-events\u-log SET INET6\u-ATON(?)
,尽管我可能误解了节点如何将标识符构建为值……这是SQL文本还是伪值?我认为INSERT-INTO-events\u-log(ip)值(INET6\u-ATON(?)
当然可以,它可以工作,因为它是纯SQL,我有JS对象,我必须将它传递到节点mysql库