Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 18, 2015 10:38:32

sam
Зарегистрирован: 2015-02-18
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться с MySQLdb

Всем привет!
ОС: Убунта
Питон версии 2.7.6
Для доступа к MySQL использую MySQLdb

Собственно проблема:
При попытке выполнить операцию
cursor.execute('select count(*) from users WHERE login='jack';')

Выдает ошибку:
File “<stdin>”, line 1
cursor.execute('select count(*) from users where login='jack';')
^
SyntaxError: invalid syntax


Этот же запрос, выполненный в самом MySQL возвращает нормальный результат
PS: все остальные запрос питон вопринимает нормально

Офлайн

#2 Фев. 18, 2015 10:49:08

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

помогите разобраться с MySQLdb

cursor.execute("select count(*) from users WHERE login='jack'")

А если использовать двойные ковычки?



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#3 Фев. 18, 2015 10:53:06

sam
Зарегистрирован: 2015-02-18
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться с MySQLdb

Опана, сработало!
Огромное спасибо за помощь.

Но объясните пожалуйста, почему так?
Ведь в питоне одинарные и двойные кавычки равнозначны

Офлайн

#4 Фев. 18, 2015 11:17:50

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

помогите разобраться с MySQLdb

В строке внутри двойных надо использовать одинарные (или обратно), либо конкатенацию строк
В cursor.execute должна передоваться строка


>>> "select count(*) from users WHERE login='jack'"
"select count(*) from users WHERE login='jack'"
>>> 'select count(*) from users WHERE login='+'jack'
'select count(*) from users WHERE login=jack'
>>> 'select count(*) from users WHERE login='jack';'
  File "<stdin>", line 1
    'select count(*) from users WHERE login='jack';'
                                                ^
SyntaxError: invalid syntax



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#5 Фев. 18, 2015 11:37:00

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

помогите разобраться с MySQLdb

Можно ещё экранировать:

cursor.execute("select count(*) from users WHERE login=\"jack\"")

Отредактировано MiK (Фев. 18, 2015 11:37:44)

Офлайн

#6 Фев. 18, 2015 11:40:31

sam
Зарегистрирован: 2015-02-18
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите разобраться с MySQLdb

Все понятно.
Еще раз большое спасибо.
Проблема решена, тема закрыта.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version