2017-01-15 2 views
0

Как форматировать для Python:Как форматировать строку запроса

query = """SELECT u.id, u.username, a.id as author_id, 
a.user_id, a.first_name, a.last_name FROM users u\n 
    LEFT JOIN authors a on u.id = a.user_id\n 
    WHERE u.username='{0}'\n""".format(username) 

Когда я бегу db.execute (запросов), я, кажется, не получают никаких результатов назад, несмотря на меня выполнение этого запроса через HeidiSQL.

В Python я получаю 1054 (42S22): Неизвестный столбец « '' в 'где предложение'

Я использую mysql.connector, MySQL 5,6 установлен

enter image description here

.

I GET имя пользователя от username = request.POST.get('username') Передаю это значение этому формату (имя пользователя).

Кажется, я получаю:

print(str(user['password'])) 
TypeError: 'NoneType' object is not subscriptable 

Print:

SELECT u.id, u.username, a.id as author_id, a.user_id, a.first_name, a.last_name FROM users u 
LEFT JOIN authors a on u.id = a.user_id 
WHERE u.username="erik" 
+4

Совет по безопасности: не отформатируйте свои запросы самостоятельно! Используйте форматирование, предлагаемое API, или инструмент, такой как * SQLAlchemy *, который защищает вас от * SQL-инъекции *. –

+0

Я запускаю это на localhost. Python. – haxxir411

+1

Можете ли вы дать нам значение для 'username'? Кроме того, обратите внимание, что речь идет не только о безопасности в конце концов. Если 'username'' '' '' '' ', MySQL будет запутан и т. Д. –

ответ

0

В конце концов я решил все. Я сделал некоторые небольшие ошибки с возвратом функции. :-)

Смежные вопросы