Быстрый в изучении - мощный в программировании
Скрипт ИНВЕСТОР на Python

Попробуйте себя в качестве инвестора имея в помощники мощный алгоритм советника на Python...

Все уроки по PyQt5

PyQt5 реализован как комплект Python-модулей. Он включает в себя около 620 классов и 6000 функций и методов...

Скрипт отправки SMS через Python

Была задача отправить SMS-ки большому списку номеров телефона с уточнением цены за всю рассылку "До" ее отправки...

Запросы с параметрами в SQLite [Часть 4]

Запросы с параметрами в SQLite

Сейчас мы научимся работать с параметрами при создании запроса. Когда мы используем параметризованные запросы, мы используем местозаполнители вместо прямого написания значений в SQL запросе. Запросы с указанием параметров отдельно увеличивают безопасность и производительность.

Python модуль sqlite3 поддерживает два типа заполнителей: знаки вопроса и именованные заполнители.

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sqlite3 as lite
import sys
 
uId = 1
uPrice = 62300 
 
con = lite.connect('test.db')
with con:
    cur = con.cursor()    
    cur.execute("UPDATE Cars SET Price=? WHERE Id=?", (uPrice, uId))        
    con.commit()
    print "Number of rows updated: %d" % cur.rowcount

Мы обновляем цену одной машины. В этом примере кода, мы используем заполнители типа «знак вопроса».

cur.execute("UPDATE Cars SET Price=? WHERE Id=?", (uPrice, uId))

Знаки вопроса ? являются заполнителями для значений. Значения добавляются на его место.

print "Number of rows updated: %d" % cur.rowcount

Свойство rowcount возвращает количество обновленных строк. В нашем случае, одна строка была обновлена.

Такой подход программирования и создания запрос к базе данных увеличивает безопасность приложения. webmartsoft.ru/web-razrabotka.html - профессиональная веб разработка выполняет качественные и безопасные проекты которые позволяют своим клиентам не бояться за сохранность данных своего сайта.

$ ./prepared.py
Number of rows updated: 1
 
Id          Name        Price     
----------  ----------  ----------
1           Audi        62300 

Была обновлена цена машины.

Второй пример использует запрос с параметрами с именованными заполнителями.

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sqlite3 as lite
import sys
 
uId = 4
con = lite.connect('test.db')
with con:
    cur = con.cursor()    
    cur.execute("SELECT Name, Price FROM Cars WHERE Id=:Id", 
        {"Id": uId})        
    con.commit()
    
    row = cur.fetchone()
    print row[0], row[1]

Мы выбираем название и цену машины, используя именованные заполнители.

cur.execute("SELECT Name, Price FROM Cars WHERE Id=:Id", 
    {"Id": uId})

Именованные заполнители начинаются с символа двоеточия.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru yandex.ru
Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)