#python #python-2.7 #mysql-python #python-3.8
#python #python-2.7 #mysql-python #python-3.8
Вопрос:
я использую модуль mysql.connector для своего скрипта.
вот мой скрипт с моей попыткой проверить: моя структура базы данных: имя, тип, прем, блок
class database():
def __init__(self):
self.Database = mysql.connect(
host='localhost',
user='root',
password='',
auth_plugin='mysql_native_password'
)
self.cursor = self.Database.cursor()
def GetProfileInformations(self, name):
args = name.split(' ')
found = self.cursor.execute('SELECT * FROM list.raids WHERE name=' args[0])
sql = self.cursor.execute('SELECT * FROM list.raids')
rc = self.cursor.fetchall(sql)
f = self.cursor.fetchall(found)
# Check is imput equal to name
for _ in f:
if not found:
return
for row in rc:
try:
if row[0] == args[0]:
if row[3] == 1:
if row[2] == 1:
print(f"Name {row[0]} found with 1")
else:
print(f"Name: {row[0]} found with 0")
else:
print(f"Name: {row[0]} found but is blocked")
except:
print("any error")
self.cursor.close()
Теперь мой вопрос, почему функция if exist не работает?
if not found:
return
хорошего дня и спасибо за помощь
Ответ №1:
Вы можете использовать эти атрибуты курсора, чтобы проверить, есть ли у вашего запроса результаты или нет:
if not found.with_rows:
print("No records found")
Вы также можете использовать:
if found.rowcount <= 0:
print("No records found")
Ответ №2:
Я решил для себя:
import mysql.connector as mysql
class database():
def __init__(self):
self.Database = mysql.connect(
host='localhost',
user='root',
password='',
auth_plugin='mysql_native_password'
)
self.cursor = self.Database.cursor(buffered=True)
def IsInSQL(self, name):
self.cursor.execute(f'SELECT EXISTS(SELECT name AS name FROM list.raids WHERE name = "{name}")')
f = self.cursor.fetchall()
if not f:
return True
else:
return False
def GetProfileInformations(self, name):
args = name.split(' ')
self.cursor.execute('SELECT * FROM list.raids')
rc = self.cursor.fetchall()
if not self.IsInSQL(args[0]):
print("nicht gefunden")
for row in rc:
try:
if row[0] == args[0]:
if row[3] == 1:
if row[2] == 1:
print("")
else:
print("")
else:
print("not found")
except:
print("lel")
self.cursor.close()