Как вставить значения непосредственно в базовую таблицу SQL с помощью Pyhton? - PullRequest
2 голосов
/ 19 мая 2019

Я пытаюсь добавить значения в таблицу SQL, введя пользовательский ввод, создав соединение через python.

Я попытался установить соединение с базой данных SQL и добавить значения в таблицу, но значения добавляются только временно в python, и значения не вставляются в таблицу SQL

Я попробовал следующее:

database ='c:\\sqlite\db\chinook.db'

conn =sqlite3.connect(database)
cur =conn.cursor()

sql ="Insert into books(id,title,author,genre,owner) values (?,?,?,?,?) "

value1 =(2,'Outliers','Malcom Gladwell','Non-Fiction','Ishant Sahu')
cur.execute(sql,value1)

sql2 ="Select * from books; "
db = pd.read_sql(sql2,conn)

Я вижу значения, вставленные в дБ:

id  title   author  genre   owner
1   Shoe Dog    Phil Knight Memoir  Jitesh Singla
2   Outliers    Malcom Gladwell Non-Fiction Ishant Sahu

Но когда я запускаю таблицу на SQL-сервере, изменений нет:

1   Shoe Dog    Phil Knight Memoir  Jitesh Singla

Есть ли способ сделать это, и если нет, то почему это невозможно?

Ответы [ 2 ]

1 голос
/ 19 мая 2019

В соединениях с базой данных python по умолчанию автоматическая фиксация равна false.Поэтому вам нужно зафиксировать запрос, чтобы сохранить данные в базе данных.

0 голосов
/ 19 мая 2019
# 导入SQLite驱动:
import sqlite3

# 连接到SQLite数据库
# 数据库文件是test.db
# 如果文件不存在,会自动在当前目录创建:
conn = sqlite3.connect('samples/sample.db')
# 创建一个Cursor:
cursor = conn.cursor()
if __name__ != '__main__':
    # 执行一条SQL语句,创建user表:
    cursor.execute('CREATE TABLE user(id VARCHAR(20) PRIMARY KEY,name VARCHAR(20))')
    # 继续执行一条SQL语句,插入一条记录:
    cursor.execute("INSERT INTO user(id,name) VALUES ('1','Michael')")
    # 通过rowcount获得插入的行数:
    print(cursor.rowcount)
# 关闭Cursor:
cursor.close()
# 提交事务:
conn.commit()
# 关闭Connection:
conn.close()


запомнить conn.commit ().

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