Python3 Ошибка синтаксиса Pymysql Unsolved [дубликат]

9
задан Jason Webb 5 August 2010 в 00:09
поделиться

1 ответ

После создания объекта соединения db:

cursor = db.execute('SELECT * FROM Customer WHERE CustomerID = %s', [customer_id])

затем используйте любой из методов fetch... результирующего объекта cursor.

Не следует обманутый частью %s: это НЕ строковое форматирование, это замена параметров (разные модули API БД используют другой синтаксис для замены параметров - pymssql просто использует неудачный %s! -).

19
ответ дан Alex Martelli 17 August 2018 в 11:21
поделиться
  • 1
    Благодарю. Синтаксис %s меня отбросил. – Jason Webb 5 August 2010 в 15:17
  • 2
    @Jason, пожалуйста, и возможная путаница - это именно то, почему я называю этот синтаксис для параметров API БД и «неудачными». (хотя многие популярные модули API DB используют его, увы). – Alex Martelli 5 August 2010 в 15:29
  • 3
    Прокляните этот вводящий в заблуждение синтаксис% s! Я просто потратил час, пытаясь понять, почему мой код жаловался на попытку использовать% d для указания параметра int. Мне показалось, что здесь используется форматирование Python. – Passiday 5 October 2013 в 09:58
  • 4
    Обратите внимание, что последний pymssql на python3 не нравится [customer_id], он хочет кортеж (customer_id,) – Perkins 30 March 2016 в 18:36
Другие вопросы по тегам:

Похожие вопросы: