|
@@ -13,6 +13,7 @@ var (
|
|
|
|
|
|
|
|
const ( // Error constants
|
|
const ( // Error constants
|
|
|
ERR_EMPTY_RESULT = "ERR_EMPTY_RESULT"
|
|
ERR_EMPTY_RESULT = "ERR_EMPTY_RESULT"
|
|
|
|
|
+ ERR_QUERY_FAILED = "ERR_QUERY_FAILED"
|
|
|
ERR_NO_COLUMNS = "ERR_NO_COLUMNS"
|
|
ERR_NO_COLUMNS = "ERR_NO_COLUMNS"
|
|
|
ERR_FAILED_ROW_SCAN = "ERR_FAILED_ROW_SCAN"
|
|
ERR_FAILED_ROW_SCAN = "ERR_FAILED_ROW_SCAN"
|
|
|
)
|
|
)
|
|
@@ -224,4 +225,45 @@ func (dbUtil DBUtils) InsertRow(what string, colsVals [][]string) error {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return err
|
|
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)
|
|
|
}
|
|
}
|