Mysql
 sql >> база данни >  >> RDS >> Mysql

Моята програма не може да съхранява стойности в MySQL, използвайки mysql конектор lib в Python

Тук правите опасни неща:

Без форматиране на низ (SQL инжекция)

Не трябва да използвате форматиране на низ поради SQL инжекция. Освен това е по-сложно, когато имате по-голям SQL код. Използвайте подготвено изявление като:

query = "INSERT INTO id(email,passw) VALUES(%s,%s)"
args = (email, passw)
mycursor.execute(query, args)

Не създавайте DB/Table нови през цялото време

Вашият код е предназначен да се проваля всеки път, защото не може да създаде нов db със същото име, ако вече съществува. Същото и с масата. Бих предложил да създадете скрипт за настройка. Също така можете да поставите базата данни в конектора и не е нужно да използвате mycursor.execute("USE login;")

mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="",
    database='login'
)

ангажимент

mysql конекторът не се извършва автоматично по подразбиране, вижте:https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlconnection-commit.html

Така че трябва да го направите сами след изпълнението.

mydb.commit()

В крайна сметка кодът трябва да изглежда така:

import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="",
    database='login'
)

mycursor = mydb.cursor()

# sign up
email = input("Your email: ")
passw = input("Your password: ")
confirm_pass = input("Confirm password: ")

if passw == confirm_pass:
    print("Successfuly registered!")

    query = "INSERT INTO id(email,passw) VALUES(%s,%s)"
    args = (email, passw)
    mycursor.execute(query, args)
    mydb.commit()

else:
    print("wrong password!")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Генериране на SQL заявка въз основа на URL параметри

  2. Docker MySQL - не може да се свърже от приложението Spring Boot към базата данни на MySQL

  3. Кога да използвам utf-8 и кога да използвам latin1 в MySQL?

  4. как да сортирам реда на LEFT JOIN в SQL заявка?

  5. PHP MySQL заявка за множествено търсене с помощта на опция / изберете етикети на HTML формуляр