Moritz Schmidt 9 years ago
parent
commit
9e2c8928a1
1 changed files with 42 additions and 0 deletions
  1. 42 0
      databaseutils.go

+ 42 - 0
databaseutils.go

@@ -13,6 +13,7 @@ var (
 
 const ( // Error constants
   ERR_EMPTY_RESULT = "ERR_EMPTY_RESULT"
+  ERR_QUERY_FAILED =  "ERR_QUERY_FAILED"
   ERR_NO_COLUMNS = "ERR_NO_COLUMNS"
   ERR_FAILED_ROW_SCAN = "ERR_FAILED_ROW_SCAN"
 )
@@ -224,4 +225,45 @@ func (dbUtil DBUtils) InsertRow(what string, colsVals [][]string) error {
   }
 
   return err
+}
+
+// GetRowsDoubleCond("users", "tokens", "`token-id` = `tokens`.`id`", "`tokens`.`value` = 'SefxSlkejpuJOjIN'")
+func (dbUtil DBUtils) GetRowsDoubleCond(fromA string, fromB string, whereA string, whereB string) ([][]string, error) { // TODO make this method great again
+  query := "SELECT * FROM `" + fromA + "`, `" + fromB + "` WHERE " + whereA + " AND " + whereB + ";"
+
+  rows, err := dbUtil.Handle.Query(query)
+  if err != nil {
+    return [][]string{}, err
+  }
+
+  var columns []string
+  columns, err = rows.Columns()
+  if err != nil {
+    return [][]string{}, err
+  }
+
+  colNum := len(columns)
+  all := [][]string{}
+
+  for rows.Next() {
+    vh := make([]string, len(columns))
+
+    cols := make([]interface{}, colNum)
+    for i := 0; i < colNum; i++ {
+        cols[i] = &vh[i]
+    }
+
+    err = rows.Scan(cols...)
+    if err != nil {
+      return [][]string{}, err
+    }
+
+    all = append(all, vh)
+  }
+
+  if len(all) > 0 {
+    return all, nil
+  }
+
+  return [][]string{}, errors.New(ERR_EMPTY_RESULT)
 }