Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

SQL: Executed query through python doesn't work but executing the exact query from cmd works

I’m learning SQL and wanted to create a database of username and passwords as a practice.
This is my code:

import mysql.connector
import re

cnx = mysql.connector.connect(
    user="root", password="123", host="127.0.0.1", database="db2"
)
cursor = cnx.cursor()


try:
    query = "CREATE TABLE userpass (Username varchar(320), Password varchar(320));"
    cursor.execute(query)
except:
    pass

regex = re.compile(r"([A-Za-z0-9]+[.-_])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\.[A-Z|a-z]{2,})+")
user_email = input("Enter your username")
while re.fullmatch(regex, user_email) == None:
    user_email = input(
        "Your username should be in the from of expression@string.string"
    )

user_pass = input("Enter your password")
query = "INSERT INTO userpass VALUES ('{}', '{}');".format(user_email,user_pass)
print(query)
cursor.execute(query)

cnx.close()

When I run it, it creates the table so I know that I’m connected to the database but the second query doesn’t do anything.
Weirdly, when I copy the printed query (below) in the cmd it works and adds the values to the table.

INSERT INTO userpass VALUES ('ASD@ADS.com', 'ASDlk');

I don’t understand where the problem is, and it doesn’t return any error.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

You aren’t explicitly committing your connection, so it’s implicitly rolled back when the connection is closed. The table will stay there since it creating is a DDL statement, but the inserted data will be lost. Add a call to commit before closing the connection and you should be OK:

cnx.commit()
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading