Tag: sql

在过期的连接之外放松请求

我正在尝试执行以下pg-promise查询,但收到此错误: 在过期的连接之外放松请求 查询实际上成功,但是,即使如此,我想摆脱错误消息。 pg-promise查询 db.task(t => { t.oneOrNone(queries.insertUser, [profile.id]) .then(id =>{ if (id) { t.none(queries.insertUserGoogle, [ profile.id, profile.emails[0].value, profile.name.givenName, profile.name.familyName, profile.displayName ]) }}) .catch(err => console.log(err)) SQL const insertUser = `INSERT INTO users (google_id) VALUES ($1) ON CONFLICT (google_id) DO NOTHING RETURNING user_id`; const insertUserGoogle = `INSERT INTO users_google (google_id, email, first_name, last_name, display_name) VALUES […]

PostgreSQL – 列不存在(与AS的地方)

我对PostgreSQL有点新手,但是我对MySQL有一些经验。 Postgres显示我和错误 – COLUMN不存在,但这是由AS创build的“虚拟列”。 代码,在MySQL中工作得非常好: SELECT place.*, 3956 * 2 * ASIN(SQRT( POWER(SIN((place.lattitude – $1) * pi() / 180 / 2), 2) + COS($2 * pi() / 180) * COS(place.lattitude * pi() / 180) *POWER(SIN(($3 – place.longitude) * pi() / 180 / 2), 2) )) AS "distance" FROM place WHERE place.longitude BETWEEN $4 AND $5 […]

从NodeJs连接SQL数据库 – ConnectionError:连接尚未打开

我试图从NodeJs连接SQL数据库,但得到此错误: 查询数据库时出错: – ConnectionError:连接尚未打开。 var executeQuery = function(res, query){ var conn = new sql.ConnectionPool(dbConfig); conn.connect().then(function () { // create Request object var request = new sql.Request(conn); // query to the database request.query(query, function (err, queryResult) { if (err) { console.log("Error while querying database :- " + err); res.send(err); } else { res.send(queryResult); } }); conn.close(); […]

使用nodejs SQL DB2插入大量数据

我得到可以说数组100.000logging: var eData = { "id": "1001", "type": "Regular" }, { "id": "1002", "type": "Chocolate" }, { "id": "1003", "type": "Blueberry" }, { "id": "1004", "type": "Devil's Food" } 等等…当我发射下面的node.js脚本 var db = require('/QOpenSys/QIBM/ProdData/OPS/Node6/os400/db2i/lib/db2a'); var DBname = "*LOCAL"; var dbconn = new db.dbconn(); dbconn.conn(DBname); var sqlA = new db.dbstmt(dbconn); eData.forEach(function(eRow, i) { var sql = […]

Node.js mysql包中的转义函数是否足够安全地查询mysql数据库(不使用预处理语句)?

根据Node.js的mysql 包文档 : 为了避免SQL注入攻击,在SQL查询中使用数据之前,应该始终转义任何用户提供的数据。 你可以使用mysql.escape(),connection.escape()或pool.escape()方法。 我找不到任何使用mysql准备语句的文档/参考,除了在引用中使用'?' 字符。 它声明如下: 或者,你可以使用? 字符作为您想要转义的值的占位符… 这看起来与MySQL中的预处理语句类似, 但是它实际上在内部使用相同的connection.escape()方法。 从我与其他开发人员谈话的经验来看,开发人员社区中的普遍共识是准备好的语句是从Node.js执行mysql查询的唯一安全方式,但是,您可以使用mysql包来看到,没有明显的支持准备好陈述。 但是,表明他们避免SQL注入的方法是通过使用转义函数。 我的问题: mysql包中的转义函数是否足够安全地查询mysql数据库(不使用预准备语句)?

在elasticsearch中得到最后一个小时的logging

我在date列上有以下映射: "order_datetime": { "type": "date", "format" : "yyyy-Md H:m:s" } 我正在查询中使用下面的范围filter获取最后一小时logging: { "range": { "order_datetime": { "gte": "now-1h", "lte": "now" } } } 我得到的是在当前时间5到6小时之前订购的订单。 任何人都可以解释为什么发生? 我认为这是一个时区问题,所以附加time_zone如下: { "range": { "order_datetime": { "gte": "now-1h", "lte": "now", "time_zone": "+05:30" } } } 我仍然得到相同的结果。 请帮忙

selectBlob返回一个函数

exports.carregaContrato = function(id, cb){ Firebird.attach(firebirdConfig, function (err, db) { if (err) throw err; db.query("select contrato_escaniado as IMAGE from cad_prospectos_contratos where codigo = ?", [id], function(err, result){ console.log(err, result[0].IMAGE) db.detach(); cb(result) }) }) } 我有这个从Blob字段中select我不知道我在做什么错误,我得到的反馈是一个函数。 在console.log我有我得到以下内容: undefined [Function] 我做错了什么,以及如何解决。 我想收到一个我保存的图像作为一个string转换为base64的图像,就像这样在我的银行: 数据保存在银行

从SQL中的序列获取最后一个值并将其插入到另一个表(Oracle)中

我有2个表,它们是通过执行以下命令创build的(请记住,每个查询都是通过node.js执行的,即connection.execute('select ….')): create table User(userid int not null, name varchar(50) not null, primary key(userid)); create table Random(userid int not null, random int, primary key (userid), foreign key (userid) references User(userid) ); 我还添加了一个序列来自动递增用户ID: create sequence userid_seq; create or replace trigger userid_bir before insert on User for each row begin select userid_seq.nextval into :new.userid from dual; end; […]

在NodeJS中进行MySQL查询的最佳实践

我很新的nodeJS,什么是最好的方式来实现SQL查询.. 当我在NodeJS中执行mysql插入操作时,我需要查询是否存在值,然后我需要执行额外的查询来获取1个字段的最大值。 一切都有callback,并依靠一个查询来执行,然后再转到下一个。 这变得非常混乱,尤其是因为我必须通过函数中的所有callback函数。 我正在考虑创build存储过程,以保持逻辑清洁.. this.get = function(data, callback, getMaxOrder, parentScope){ var val = db.query('select * from my_table where ?', data, function(err, result) { if (err) throw err; callback(data, result, getMaxOrder, parentScope); }); } this.getMaxOrder = function(data, callback, parentScope){ var val = db.query('select max(`order`) as maxOrder from my_table where some_attr = ?', [data.some_attr], function(err, result) […]

Sailsjs Mysql ORM在同一个表字段上进行多个查询

我使用的风帆V 0.10.5和最新的风帆 – MySQL的 我有一个餐厅过滤系统 Venue.find().populate('comments', { deleted: false }).where({ restaurant_services: {contains: '"delivery":1'}, restaurant_services: {contains: '"takeout":1'}, restaurant_specialties: {contains: '"breakfast":1'} }) 现在问题是当我从客户端获取数据时,我不知道用户为restaurat_servicesselect了多less项目,所以显然我必须为.where()函数创build一个dynamicJSON对象 问题是,我不能这样做 var searchObj = {}; searchObj['restaurant_specialties'] = {contains: '"breakfast":1'}; searchObj['restaurant_specialties'] = {contains: '"breakfast":1'}; 所以你可能会看到之前的值设置被第二次replace, 任何帮助将不胜感激聪明的人在这里,但不工作 Model.find({ name: { 'contains' : ['Walter', 'Skyler'] } });