mm_mysql 1.7.2 → 1.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/package.json +1 -1
  2. package/sql.js +72 -40
  3. package/test.js +11 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mm_mysql",
3
- "version": "1.7.2",
3
+ "version": "1.7.4",
4
4
  "description": "这是超级美眉mysql帮助函数模块,用于便捷操作mysql,使用await方式,可以避免嵌套函数",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/sql.js CHANGED
@@ -328,20 +328,20 @@ Sql.prototype.groupMathSql = async function(where, groupby, view, sort, method)
328
328
  if (view.indexOf(",") !== -1) {
329
329
  var arr = view.split(",");
330
330
  for (var i = 0; i < arr.length; i++) {
331
- var str = this.escapeId(arr[i]);
331
+ var str = escapeId(arr[i]);
332
332
  viewStr += "," + method.toUpperCase() + "(" + str + ") " + method.toLowerCase() + "_" + str.replace(
333
333
  /`/g, "")
334
334
  }
335
335
  } else {
336
- viewStr = "," + method.toUpperCase() + "(" + this.escapeId(view) + ") " + method.toLowerCase() + "_" +
336
+ viewStr = "," + method.toUpperCase() + "(" + escapeId(view) + ") " + method.toLowerCase() + "_" +
337
337
  view.replace(/`/g, "")
338
338
  }
339
- var sql = "SELECT " + (groupby ? this.escapeId(groupby) : "") + viewStr + " FROM `" + this.table + "`";
339
+ var sql = "SELECT " + (groupby ? escapeId(groupby) : "") + viewStr + " FROM `" + this.table + "`";
340
340
  if (where) {
341
341
  sql += ' WHERE ' + where;
342
342
  }
343
343
  if (groupby) {
344
- sql += " GROUP BY " + this.escapeId(groupby);
344
+ sql += " GROUP BY " + escapeId(groupby);
345
345
  }
346
346
  if (sort) {
347
347
  sql += " ORDER BY " + sort;
@@ -453,34 +453,39 @@ Sql.prototype.toWhere = function(obj, like) {
453
453
  if (like) {
454
454
  for (var k in obj) {
455
455
  var val = obj[k];
456
+ if (val && typeof(val) === "string") {
457
+ val = val.trim("'");
458
+ }
456
459
  if (k.endWith('_min')) {
457
- where += " and " + this.escapeId(k.replace('_min', '')) + " >= " + this.escape(val);
460
+ where += " and " + escapeId(k.replace('_min', '')) + " >= " + escape(val);
458
461
  } else if (k.endWith('_max')) {
459
- where += " and " + this.escapeId(k.replace('_max', '')) + " <= " + this.escape(val);
462
+ where += " and " + escapeId(k.replace('_max', '')) + " <= " + escape(val);
460
463
  } else if (k.endWith('_not')) {
461
- where += " and " + this.escapeId(k.replace('_not', '')) + " != " + this.escape(val);
464
+ where += " and " + escapeId(k.replace('_not', '')) + " != " + escape(val);
462
465
  } else if (k.endWith('_has')) {
463
- where += " and " + this.escapeId(k.replace('_has', '')) + " in (" + val + ")";
466
+ where += " and " + escapeId(k.replace('_has', '')) + " in (" + val + ")";
464
467
  } else if (typeof(val) === "string" && !/^[0-9]+$/.test(val)) {
465
- where += " and " + this.escapeId(k) + " LIKE '%" + this.escape(val).trim("'") + "%'"
468
+ where += " and " + escapeId(k) + " LIKE '%" + escape(val).trim("'") + "%'"
466
469
  } else {
467
- where += " and " + this.escapeId(k) + " = " + val
470
+ where += " and " + escapeId(k) + " = " + val
468
471
  }
469
472
  }
470
473
  } else {
471
474
  for (var k in obj) {
472
475
  var val = obj[k];
476
+ if (val && typeof(val) === "string") {
477
+ val = val.trim("'");
478
+ }
473
479
  if (k.endWith('_min')) {
474
- where += " and " + this.escapeId(k.replace('_min', '')) + " >= " + this.escape(val.replace('_min',
475
- ''));
480
+ where += " and " + escapeId(k.replace('_min', '')) + " >= " + escape(val);
476
481
  } else if (k.endWith('_max')) {
477
- where += " and " + this.escapeId(k.replace('_max', '')) + " <= " + this.escape(val);
482
+ where += " and " + escapeId(k.replace('_max', '')) + " <= " + escape(val);
478
483
  } else if (k.endWith('_not')) {
479
- where += " and " + this.escapeId(k.replace('_not', '')) + " != " + this.escape(val);
484
+ where += " and " + escapeId(k.replace('_not', '')) + " != " + escape(val);
480
485
  } else if (k.endWith('_has')) {
481
- where += " and " + this.escapeId(k.replace('_has', '')) + " in (" + val.replace(/`/gi, "") + ")";
486
+ where += " and " + escapeId(k.replace('_has', '')) + " in (" + val.replace(/`/gi, "") + ")";
482
487
  } else {
483
- where += " and " + this.escapeId(k) + "=" + this.escape(val);
488
+ where += " and " + escapeId(k) + "=" + escape(val);
484
489
  }
485
490
  }
486
491
  }
@@ -495,15 +500,19 @@ Sql.prototype.toWhere = function(obj, like) {
495
500
  Sql.prototype.toSet = function(obj) {
496
501
  var set = "";
497
502
  for (var k in obj) {
498
- var val = this.escape(obj[k]);
503
+ var val = obj[k];
504
+ if (val && typeof(val) == "string") {
505
+ val = val.trim("'");
506
+ }
507
+ val = escape(val);
499
508
  if (k.endWith('_add')) {
500
- var k2 = this.escapeId(k.replace('_add', ''));
509
+ var k2 = escapeId(k.replace('_add', ''));
501
510
  set += "," + k2 + " = " + k2 + " + " + val;
502
511
  } else if (k.endWith('_del')) {
503
- var k3 = this.escapeId(k.replace('_del', ''));
512
+ var k3 = escapeId(k.replace('_del', ''));
504
513
  set += "," + k3 + " = " + k3 + " - " + val;
505
514
  } else {
506
- set += "," + this.escapeId(k) + " = " + val;
515
+ set += "," + escapeId(k) + " = " + val;
507
516
  }
508
517
  }
509
518
  return set.replace(",", "");
@@ -516,13 +525,18 @@ Sql.prototype.toSet = function(obj) {
516
525
  */
517
526
  Sql.prototype.toAddSql = function(item) {
518
527
  var key = "";
519
- var val = "";
528
+ var value = "";
520
529
  for (var k in item) {
521
- key += "," + this.escapeId(k);
522
- val += "," + this.escape(item[k]);
530
+ key += "," + escapeId(k);
531
+ var val = item[k];
532
+ if (val && typeof(val) == "string") {
533
+ val = val.trim("'");
534
+ }
535
+ value += "," + escape(val);
523
536
  }
524
537
  var sql = "INSERT INTO `{0}` ({1}) VALUES ({2});";
525
- return sql.replace("{0}", this.table).replace("{1}", key.replace(",", "")).replace("{2}", val.replace(",", ""));
538
+ return sql.replace("{0}", this.table).replace("{1}", key.replace(",", "")).replace("{2}", value.replace(",",
539
+ ""));
526
540
  };
527
541
 
528
542
  /**
@@ -755,12 +769,19 @@ Sql.prototype.tpl_query = function(paramDt, sqlDt) {
755
769
  var sl = "(";
756
770
  var len = arr.length;
757
771
  for (var i = 0; i < len; i++) {
758
- sl += " || " + tpl.replaceAll("{0}", this.escape(arr[i]).trim("'"));
772
+ var val = arr[i];
773
+ if (val && typeof(val) == "string") {
774
+ val = val.trim("'");
775
+ }
776
+ sl += " || " + tpl.replaceAll("{0}", escape(val).trim("'"));
759
777
  }
760
778
  sl = sl.replace(" || ", "") + ")";
761
779
  sql += " && " + sl;
762
780
  } else {
763
- sql += " && " + tpl.replaceAll("{0}", this.escape(value).trim("'"));
781
+ if (value && typeof(value) == "string") {
782
+ value = value.trim("'");
783
+ }
784
+ sql += " && " + tpl.replaceAll("{0}", escape(value).trim("'"));
764
785
  }
765
786
  } else {
766
787
  if (arr.length > 1) {
@@ -768,22 +789,33 @@ Sql.prototype.tpl_query = function(paramDt, sqlDt) {
768
789
  var sl = "(";
769
790
  var len = arr.length;
770
791
  for (var i = 0; i < len; i++) {
771
- sl += " || " + this.escapeId(key) + " = " + this.escape(arr[i]);
792
+ var val = arr[i];
793
+ if (val && typeof(val) == "string") {
794
+ val = val.trim("'");
795
+ }
796
+ sl += " || " + escapeId(key) + " = " + escape(val);
772
797
  }
773
798
  sl = sl.replace(" || ", "") + ")";
774
799
  sql += " && " + sl;
775
800
  } else {
776
- sql += " && " + this.escapeId(key) + " = " + this.escape(value);
801
+ if (value && typeof(value) == "string") {
802
+ value = value.trim("'");
803
+ }
804
+ sql += " && " + escapeId(key) + " = " + escape(value);
777
805
  }
778
806
  }
779
807
  }
780
808
  } else {
781
809
  for (var key in paramDt) {
782
- var value = this.escape(paramDt[key]);
810
+ var value = paramDt[key];
811
+ if (value && typeof(value) == "string") {
812
+ value = value.trim("'");
813
+ }
814
+ value = escape(value);
783
815
  if (sqlDt[key]) {
784
816
  sql += " && " + sqlDt[key].replaceAll("{0}", value.trim("'"));
785
817
  } else {
786
- sql += " && " + this.escapeId(key) + " = " + value;
818
+ sql += " && " + escapeId(key) + " = " + value;
787
819
  }
788
820
  }
789
821
  }
@@ -800,18 +832,18 @@ Sql.prototype.tpl_query = function(paramDt, sqlDt) {
800
832
  var sl = "(";
801
833
  var len = arr.length;
802
834
  for (var i = 0; i < len; i++) {
803
- sl += " || " + this.escapeId(key) + " = " + this.escape(arr[i]);
835
+ sl += " || " + escapeId(key) + " = " + escape(arr[i]);
804
836
  }
805
837
  sl = sl.replace(" || ", "") + ")";
806
838
  sql += " && " + sl;
807
839
  } else {
808
- sql += " && " + this.escapeId(key) + " = " + this.escape(value);
840
+ sql += " && " + escapeId(key) + " = " + escape(value);
809
841
  }
810
842
  }
811
843
  } else {
812
844
  // 直接拼接
813
845
  for (var key in paramDt) {
814
- sql += " && " + this.escapeId(key) + " = " + this.escape(paramDt[key]);
846
+ sql += " && " + escapeId(key) + " = " + escape(paramDt[key]);
815
847
  }
816
848
  }
817
849
  }
@@ -828,19 +860,19 @@ Sql.prototype.tpl_body = function(paramDt, sqlDt) {
828
860
  var sql = "";
829
861
  if (!sqlDt || sqlDt.length === 0) {
830
862
  for (var key in paramDt) {
831
- sql += " , " + this.escapeId(key) + " = " + this.escape(val[key]);
863
+ sql += ", " + escapeId(key) + " = " + escape(val[key]);
832
864
  }
833
865
  } else {
834
866
  for (var key in paramDt) {
835
- var value = this.escape(paramDt[key]);
867
+ var value = escape(paramDt[key]);
836
868
  if (sqlDt[key]) {
837
- sql += " , " + sqlDt[key].replace("{0}", value).replace('+ -', '- ').replace('- -', '+ ');
869
+ sql += ", " + sqlDt[key].replace("{0}", value).replace('+ -', '- ').replace('- -', '+ ');
838
870
  } else {
839
- sql += " , " + this.escapeId(key) + " = " + value;
871
+ sql += ", " + escapeId(key) + " = " + value;
840
872
  }
841
873
  }
842
874
  }
843
- return sql.replace(" , ", "");
875
+ return sql.replace(", ", "");
844
876
  };
845
877
 
846
878
  /**
@@ -892,7 +924,7 @@ Sql.prototype.getObj = async function(query, sort, view, like) {
892
924
  var key = this.key;
893
925
  if (key) {
894
926
  if (view && view.indexOf(key) === -1 && view.indexOf('*') === -1) {
895
- view += "," + this.escapeId(key);
927
+ view += "," + escapeId(key);
896
928
  }
897
929
  }
898
930
  if (like === undefined) {
@@ -912,4 +944,4 @@ Sql.prototype.getObj = async function(query, sort, view, like) {
912
944
  }
913
945
  };
914
946
 
915
- module.exports = Sql;
947
+ module.exports = Sql;
package/test.js CHANGED
@@ -87,8 +87,19 @@ async function test_tpl_get() {
87
87
  db.size = 5;
88
88
  var query_str = db.tpl_query(query, tpl.query);
89
89
  ret = await db.getCountSql(query_str, "`user_id` desc", "*");
90
+
90
91
  console.log('查询结果', ret);
91
92
  console.log('SQL语句', db.sql);
93
+
94
+ // var o = ret.list[0];
95
+ // console.log("查询结果", o);
96
+ // // o.user_id = await db.count() + 1;
97
+ // o.gm = "'5";
98
+ // // await db.add(o);
99
+ // await db.addOrSet({
100
+ // user_id: o.user_id
101
+ // }, o);
102
+ // console.log(db.sql);
92
103
 
93
104
  ret = await db.groupSumSql(query_str, "mc", "gm");
94
105
  console.log('求和查询结果', ret);