-
Notifications
You must be signed in to change notification settings - Fork 0
/
pythonquery2.py
49 lines (40 loc) · 1.33 KB
/
pythonquery2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Version still under developement.
# usage: pythonquery2.py -q "THERE IS my query"
# by default the program fetches all the records in the table.
# you can fetch only one record with option -o
# or you can specify how many with -m option.
# example:
# pythonquery2.py "SELECT * FROM test_table WHERE test_value = Null" -m 5
# will print only the first 5 rows generated by your query
# todo: parsing and exception / errors management
import pymysql.cursors, getopt, sys
passedArguments = sys.argv[1:]
# parametri di connessione al database
connection = pymysql.connect(
host="127.0.0.1",
user="root",
password="docker",
database="test",
charset="utf8mb4",
cursorclass=pymysql.cursors.DictCursor,
)
opts, args = getopt.getopt(passedArguments, "oq:m:")
with connection:
with connection.cursor() as cursor:
for opt, arg in opts:
if opt in ["-q"]:
sql = arg
elif opt in ["-o"]:
linestofetch = 1
elif opt in ["-m"]:
linestofetch = 2
howmany = arg
cursor.execute(sql)
if linestofetch == 1:
result = cursor.fetchone()
elif linestofetch == 2:
result = cursor.fetchmany(int(howmany))
else:
result = cursor.fetchall()
print(result)
connection.commit()