mysql-query-builder-js
Advanced tools
Comparing version 0.0.2 to 0.0.3
100
index.js
@@ -46,2 +46,23 @@ /* | ||
} | ||
this.getWhere = function(){ | ||
if(this._clausales.length>0){ | ||
var str = " WHERE "; | ||
for(var i in this._clausales){ | ||
var cl = this._clausales[i]; | ||
if(i == 0){ | ||
str += cl.where; | ||
}else{ | ||
if(cl.type == 1){ | ||
str+=" AND "+cl.where; | ||
}else{ | ||
str+=" OR "+cl.where; | ||
} | ||
} | ||
} | ||
return str; | ||
}else{ | ||
return ''; | ||
} | ||
} | ||
} | ||
@@ -71,2 +92,3 @@ | ||
this._table = table; | ||
this._clausales = []; | ||
return this; | ||
@@ -111,2 +133,76 @@ } | ||
/** | ||
* Where | ||
* @param {String|Array} params | ||
* @return {Object} this | ||
*/ | ||
Builder.prototype.where = function(param){ | ||
this.tableTest(); | ||
if(arguments.length > 1){ | ||
if(arguments.length > 2){ | ||
this._clausales.push({ | ||
type:1, | ||
where: arguments[0] + " " + arguments[1] + " '" + arguments[2] + "'" | ||
}); | ||
}else{ | ||
this._clausales.push({ | ||
type:1, | ||
where: arguments[0] + " = '" + arguments[1] + "'" | ||
}); | ||
} | ||
}else{ | ||
for(var i = 0 ; i < param.length; i++){ | ||
if(param[i].length > 2){ | ||
this._clausales.push({ | ||
type:1, | ||
where: param[i][0] + " " + param[i][1] + " '" + param[i][2] + "'" | ||
}); | ||
}else{ | ||
this._clausales.push({ | ||
type:1, | ||
where: param[i][0] + " = '" + param[i][1] + "'" | ||
}); | ||
} | ||
} | ||
} | ||
return this; | ||
} | ||
/** | ||
* Where Or | ||
* @param {String|Array} params | ||
* @return {Object} this | ||
*/ | ||
Builder.prototype.whereOr = function(param){ | ||
this.tableTest(); | ||
if(arguments.length > 1){ | ||
if(arguments.length > 2){ | ||
this._clausales.push({ | ||
type:2, | ||
where: arguments[0] + " " + arguments[1] + " '" + arguments[2] + "'" | ||
}); | ||
}else{ | ||
this._clausales.push({ | ||
type:2, | ||
where: arguments[0] + " = '" + arguments[1] + "'" | ||
}); | ||
} | ||
}else{ | ||
for(var i = 0 ; i < param.length; i++){ | ||
if(param[i].length > 2){ | ||
this._clausales.push({ | ||
type:2, | ||
where: param[i][0] + " " + param[i][1] + " '" + param[i][2] + "'" | ||
}); | ||
}else{ | ||
this._clausales.push({ | ||
type:2, | ||
where: param[i][0] + " = '" + param[i][1] + "'" | ||
}); | ||
} | ||
} | ||
} | ||
return this; | ||
} | ||
/** | ||
* Get query result | ||
@@ -118,6 +214,6 @@ * | ||
Builder.prototype.get = function(callback){ | ||
this.sql = "SELECT "+this._fields.join(',')+" FROM "+this._table; | ||
this.sql = "SELECT "+this._fields.join(',')+" FROM "+this._table+this.getWhere(); | ||
this.connection.query(this.sql, function(err, rows, fields){ | ||
callback(err, rows, fields); | ||
callback(err, rows, fields, this.sql); | ||
}); | ||
@@ -124,0 +220,0 @@ return this; |
{ | ||
"name": "mysql-query-builder-js", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"description": "Query builder for mysql in Node.js", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -12,4 +12,7 @@ var builder = require('../index'); | ||
.select('nome','email') | ||
.get(function(err, rows, fields){ | ||
.where('id','>',1) | ||
.whereOr('email','like','%jay%') | ||
.get(function(err, rows, fields, sql){ | ||
console.log(sql) | ||
console.log(rows) | ||
}); |
7818
215