Skip to content

Commit 28cfca6

Browse files
committed
Fix query
1 parent c0ab527 commit 28cfca6

File tree

4 files changed

+29
-8
lines changed

4 files changed

+29
-8
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@
1515

1616
# dep
1717
vendor
18+
19+
# binary
20+
hakagi

Gopkg.lock

Lines changed: 10 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ dep:
44
rm -rf vendor/
55
dep ensure -v
66

7+
.PHONY: cmd
78
cmd:
89
go build cmd/hakagi/hakagi.go

cmd/hakagi/hakagi.go

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@ package main
33
import (
44
"database/sql"
55
"flag"
6+
"fmt"
67
"log"
8+
"strings"
79

810
_ "github.com/go-sql-driver/mysql"
11+
"github.com/jmoiron/sqlx"
912
)
1013

1114
const (
@@ -15,7 +18,7 @@ const (
1518
FROM
1619
COLUMNS
1720
WHERE
18-
TABLE_SCHEMA IN (%s);
21+
TABLE_SCHEMA IN (?);
1922
`
2023
)
2124

@@ -25,14 +28,18 @@ type schema struct {
2528
dataType string
2629
}
2730

28-
func fetchSchema(db *sql.DB, targets string) (schema, error) {
29-
targetsConditions := "'" + strings.Join(strings.Split(targets, ","), "','") + "'"
31+
func fetchSchemas(db *sql.DB, targets []string) ([]schema, error) {
32+
query, args, err := sqlx.In(queryBase, targets)
33+
if err != nil {
34+
return nil, err
35+
}
3036

31-
rows, err := db.Query(queryBase, targetsConditions)
32-
defer rows.Close()
37+
rows, err := db.Query(query, args...)
3338
if err != nil {
3439
return nil, err
3540
}
41+
defer rows.Close()
42+
fmt.Println(rows)
3643

3744
var schemas []schema
3845
for rows.Next() {
@@ -56,14 +63,15 @@ func main() {
5663

5764
flag.Parse()
5865

59-
dbUri := fmt.Sprinft("%s:%s@tcp(%s:%d)/%s", *dbUser, *dbPass, *dbhost, *dbPort, databaseName)
66+
dbUri := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", *dbUser, *dbPass, *dbHost, *dbPort, databaseName)
6067
db, err := sql.Open("mysql", dbUri)
6168
if err != nil {
6269
log.Fatalf("Failed to connect database : %v", err)
6370
}
6471

65-
schemas, err := fetchSchema(db, *targets)
72+
schemas, err := fetchSchemas(db, strings.Split(*targets, ","))
6673
if err != nil {
6774
log.Fatalf("Failed to fetch schemas : %v", err)
6875
}
76+
fmt.Println(schemas)
6977
}

0 commit comments

Comments
 (0)