Как мне использовать параметры SQL с Python? - PullRequest
13 голосов
/ 05 августа 2010

Я использую Python 2.7 и pymssql 1.9.908 .

В .net для запроса базы данных я бы сделал что-то вроде этого:

using (SqlCommand com = new SqlCommand("select * from Customer where CustomerId = @CustomerId", connection))
{
    com.Parameters.AddWithValue("@CustomerID", CustomerID);
    //Do something with the command
}

Я пытаюсь выяснить, что такое эквивалент для python и, в частности, pymssql. Я понимаю, что мог бы просто выполнять форматирование строк, однако это не похоже на то, что дескриптор экранирует должным образом, как параметр (я могу ошибаться).

Как мне это сделать на python?

1 Ответ

20 голосов
/ 05 августа 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...