sniffer-agent/scripts/check_prepare.py

76 lines
1.9 KiB
Python

import time
import mysql.connector
from mysql.connector.cursor import MySQLCursorPrepared
config = {
'host': '192.168.XX.XX',
'port': 3358,
'database': 'sniffer',
'user': 'root',
'password': '',
'charset': 'utf8',
'use_unicode': True,
'get_warnings': True,
}
def _real_main(config):
while True:
_once_check()
def _once_check():
output = []
conn = mysql.connector.Connect(**config)
curprep = conn.cursor(cursor_class=MySQLCursorPrepared)
cur = conn.cursor()
# Drop table if exists, and create it new
stmt_drop = "DROP TABLE IF EXISTS names"
cur.execute(stmt_drop)
stmt_create = (
"CREATE TABLE names ("
"id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, "
"name VARCHAR(30) DEFAULT '' NOT NULL, "
"cnt TINYINT UNSIGNED DEFAULT 0, "
"PRIMARY KEY (id))"
)
cur.execute(stmt_create)
# Connector/Python also allows ? as placeholders for MySQL Prepared
# statements.
prepstmt = "INSERT INTO names (name) VALUES (%s)"
# Preparing the statement is done only once. It can be done before
# without data, or later with data.
curprep.execute(prepstmt)
# Insert 3 records
names = (
'Geert', 'Jan', 'Michel', 'wang', 'Jan', 'Michel', 'wang',
'Jan', 'Michel', 'wang', 'Jan', 'Michel', 'wang', 'Jan', 'Michel',
'wang', 'Jan', 'Michel', 'wang', 'Jan', 'Michel', 'wang', 'Jan',
'Jan', 'Michel', 'wang')
for name in names:
curprep.execute(prepstmt, (name,))
conn.commit()
time.sleep(0.1)
# We use a normal cursor issue a SELECT
output.append("Inserted data")
cur.execute("SELECT id, name FROM names")
for row in cur:
output.append("{0} | {1}".format(*row))
# Cleaning up, dropping the table again
cur.execute(stmt_drop)
conn.close()
print(output)
if __name__ == '__main__':
_real_main(config)