Как вставлять в базу данных данные которых там еще нет

Рейтинг: 0Ответов: 2Опубликовано: 23.02.2023
names = [item["nick"] for item in data["moderators"]]
discord_u = [item["user_id"] for item in data["moderators"]]
vk_m = [item["vk"] for item in data["moderators"]]
x = {
    'nick': names,
    'user_id': discord_u,
    'vk': vk_m
}
mydb = mysql.connector.connect(
        host="",
        user="",
        password="",
        database="",
        )
curs = mydb.cursor()
for i in range(len(names)):
        sql = 'SELECT id FROM moderator WHERE id = discord_u'
        if sql is None:
            sqlFormula = 'INSERT INTO moderator (id, coins, nick, warns, VK) VALUES (%s, %s, %s, %s, %s)'
            values = (discord_u[i], 0, names[i], 0, vk_m[i])
            curs.execute(sqlFormula, values)      
        else:
            pass

Ответы

▲ 1
names = [item["nick"] for item in data["moderators"]]
discord_u = [item["user_id"] for item in data["moderators"]]
vk_m = [item["vk"] for item in data["moderators"]]
x = {
    'nick': names,
    'user_id': discord_u,
    'vk': vk_m
}
mydb = mysql.connector.connect(
        host="",
        user="",
        password="",
        database="",
        )
curs = mydb.cursor()
for i in range(len(names)):
        curs.execute('SELECT * FROM moderator WHERE id = %s', (discord_u,))
        sql = curs.fetchall()
        if len(sql)<1:
            sqlFormula = 'INSERT INTO moderator (id, coins, nick, warns, VK) VALUES (%s, %s, %s, %s, %s)'
            values = (discord_u[i], 0, names[i], 0, vk_m[i])
            curs.execute(sqlFormula, values)
            mydb.commit()
        else:
            pass
▲ 1

Вот пример решения:

import pymysql

mydb = pymysql.connect(host='localhost',
                                user='root',
                                password='',
                                database='ggg',
                                cursorclass=pymysql.cursors.DictCursor)
curs = mydb.cursor()
discord_u = input("discord: ")
names = input("names: ")
vk_m = input("vk_m: ")
sql = f"SELECT id FROM moderator WHERE id = '{discord_u}' AND nick = '{names}' AND vk = '{vk_m}'"
curs.execute(sql) 
result = curs.fetchall()
print(len(result))
        
if len(result) == 0:
    with mydb:
        with mydb.cursor() as cursor:
                        
            sqlFormula = 'INSERT INTO moderator (id, coins, nick, warns, VK) VALUES (%s, %s, %s, %s, %s)'
            curs.execute(sqlFormula, (discord_u, 0, names, 0, vk_m)) 
        mydb.commit()     
else:
    pass