Найти - Пользователи
Полная версия: Примеры SqLite
Начало » Базы данных » Примеры SqLite
1
Omro
Очень хороша эта бд, действительно удобна. Но вот вопрос - есть ли исходники какого-либо sqlite - менеджера, написанного на питоне? Я не понимаю, как делать подстановки переменных в случае например если хочется Create table сделать со своим названием.

Думаю, ещё возникнут мелкие вопросы, так-что именно мини менеджер бд подошёл-бы, дабы расковырять. Интуит читал, руководство тоже, но как делать insert table со своим значением не понял :-)

Заранее спасибо!!!
slav0nic
sqlitebrowser есть
или https://addons.mozilla.org/en-US/firefox/addon/5817

а вообще есть куча примеров, посмотри например тесты для sqlite

что такое “create table со своими названиями” не осилил
Omro
Create table с названием-переменной уже осилил. XD Эту тузлу для ФФ использовал уже, очень удобно что лис и таким оброс…
Стоит что-нибудь спросить, как попадается самому нужный док. А перед этим несколько часов поиска XD
Всё равно спасибо!
Omro
Стоп, опять я что-то сглупил.
c.execute(u'INSERT INTO "main".%s ("begin") VALUES (%s)'%(st, sl))
Почему здесь не срабатывает юникод-строка?
slav0nic
во-первых некошерно юзать форматирование строк в SQL запросах, это прихоти РНР пhограммистов))
там где % запятую надо ставить
и покажи как задаётся st и sl
Omro
Обычные строки unicode:
st = u"Строка"
sl = u"Слово"
Например эти.
Хорошо, если некошерно. Как тогда тогда кошерно вбивать переменные в sql-запрос?)
Ed
Omro
Обычные строки unicode:
st = u"Строка"
sl = u"Слово"
Например эти.
Вот работающий пример. Результат выводится по-русски.
# -*- coding: utf-8 -*-
import sqlite3
conn = sqlite3.connect(“:memory:”)
conn.execute(“create table test(field1, field2)”)
conn.execute(“insert into test(field1, field2) values(?,?)”, (u'тест один', u'тест два'))
field1, field2 = conn.execute(“select * from test”).fetchone()
print field1, field2
Хорошо, если некошерно. Как тогда тогда кошерно вбивать переменные в sql-запрос?)
Читайте здесь: http://docs.python.org/library/sqlite3.html
Там почти в самом начале. Можете поискать по фразе ‘SQL injection attack’
Omro
Базу данных изначально продумано организовать на множество таблиц (называемых динамически) в ней.
А как быть с:
conn.execute("create table ?(?, ?)", ("test", "field1", "field2"))
Код гораздо чище, спасибо! Про инъекции sql-кода ясно, но прога для хорошего друга, ему самому себе некуда вводить sql - инъекцию, да и в висте легче сныкать сам файл)))
pyJee
про sqlite можно почитать, например в доках питона :)
http://docs.python.org/library/sqlite3.html
Omro
Спасибо, в этой теме уже советовали эту ссылку. Ну да, не всё быстро схватываю, но есть и хуже=D
Я просто спросил, знает ли кто конкретный пример как поправить.
БД нужно строит динамически, в этом и идея.
Но за скобкой вопрос, потом в скобке питон усилено игнорит. :/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB