Versturen van verzoeken naar de database in Python
Na het verbinden met de database kun je
verzoeken ernaar sturen. Dit wordt gedaan met behulp van
de variabele query, waarin
de SQL-query wordt geschreven om alle
gegevens uit de tabel users weer te geven. Deze
variabele moet worden geschreven in het blok met
de variabele connection:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Vervolgens schrijven we nog een with constructie
voor het werken met het MySQLConnection-object,
opgeslagen in de variabele connection.
Op dit object moeten achtereenvolgens
speciale methoden worden toegepast. De eerste daarvan
is de methode cursor, die
van het MySQLConnection-object een
CMySQLCursor-object maakt. Hierop wordt op zijn beurt
de methode execute toegepast, die
de uitvoering van de SQL-query verzorgt,
die aan hem is doorgegeven als parameter:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Vervolgens moeten alle gegevens worden opgehaald met behulp van
de methode fetchall en worden opgeslagen in
de variabele result. En om de
verkregen gegevens weer te geven, moeten ze
door een for lus worden gehaald:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
De volledige code zal er als volgt uitzien:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
print(cursor)
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
except Error as e:
print(e)
Na het uitvoeren van de code worden alle records in de console weergegeven als tuples:
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Geef alle gegevens uit de tabel users weer.