Найти - Пользователи
Полная версия: преобразование кода для sqlite в mysql
Начало » Базы данных » преобразование кода для sqlite в mysql
1 2 3 4
Popov
Напишу в подробности что нужно:
Мне нужно что бы проводился запрос на наличие совпадения в таблице пары (логин и пароль) если совпадения нет то выводил сообщение что пользователь не найден.

Нашел в youtube урок как это сделать, но вместо mysql там sqllite, в sqlite все работает.
там идет запрос
("SELECT * FROM USERS WHERE USERNAME = ? AND PASSWORD = ?",(username,password))
и проверка результата
(len(result.fetchall()) > 0):
так как Mysql нужно немного изменить логику, во всех доках пишут что нужно использовать query.next(), а как сделать не как понять не могу
мне нужно сделать так что бы запрос повторялся пока запись в таблице не кончиться или пока пара не будет найдена.
У кого есть опыт с mysql и QtSql помогите плиз






ZerG
Я понял. Так мы застрянем на долго!
У вас какая то хромоножка
Подозреваю что все поля username уникальны,
тогда все что вам нужно это
# -*- coding: utf-8 -*-
import MySQLdb
db = MySQLdb.connect(host="localhost",    # your host, usually localhost
                     user="john",         # your username
                     passwd="megajonhy",  # your password
                     db="jonhydb")        # name of the data base
cur = db.cursor()
user = 'some_username'
query = "SELECT username, password FROM USERS WHERE USERNAME = '{}'".format(user)
# Use all the SQL you like
cur.execute(query)
result = cur.fetchone()
print result
cur.close()

таким образом получаете пару логин пароль и сравниваете уже где и как вам нужно.


Это как пример
py.user.next
Popov
Помогите сделать цикл на подобии этого if(len(query.fetchall()) > 0):
Сделай отдельный тестовый скрипт и тестовую таблицу в базе данных. Потренируйся на них без всяких окон, просто в консоль выводи данные.
ZerG
Угу. Скрипт для теста постом выше.
py.user.next - все правильно вам советует!
py.user.next
ZerG
Угу. Скрипт для теста постом выше.
Не, я имел в виду, что через Qt надо делать. Если у него программа на Qt, то и средства должны Qt'шные использоваться. Это касается всего - дат, потоков, баз данных. Там даже time.sleep() не сможешь использовать, потому что она просто не работает там.
ZerG
Сделай отдельный тестовый скрипт и тестовую таблицу в базе данных. Потренируйся на них без всяких окон, просто в консоль выводи данные.
Я имел в виду пусть это сделает вобще в принцыпе без кутей ит так далее.
Что бы понять принцып и логику! Человек с базами вобще понятия ж не имеет а сразу пробует обработку в коде поменять.
py.user.next
ZerG
Я имел в виду пусть это сделает вобще в принцыпе без кутей ит так далее.
Надо сделать с Qt, сам-то с Qt не смог пример сделать что ли?
Возьми документацию цппшную, там уже готовый пример есть, его только на питон надо перевести.
С базами-то никаких особых команд тут нет у него (кавычки забыл - ерунда).
Просто этот драйвер MySQLdb во-первых, не единственный, их много разных, а во-вторых, действия с ним сильно отличаются от действий с Qt'шным объектом. Смысл ему проходить их, если они ему не пригодятся?
ZerG
У него проблема не с куте а с пониманием БД. Он не понимает что и как делается в его коде с базой.
py.user.next
ZerG
Он не понимает что и как делается в его коде с базой.
Это ты с чего взял? Что-то нигде не вижу, что он не знает, как select сделать.
Смотри, он даже вопросики поставил, про которые ты не знаешь. ;)
Вот ты написал
ZerG
user = 'some_username'
query = "SELECT username, password FROM USERS WHERE USERNAME = '{}'".format(user)
# Use all the SQL you like
cur.execute(query)
Так же нельзя делать.
ZerG
с чего ето нельзя?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB