如何使用python将表单数据插入MYSQL

时间:2015-07-31 11:35:25

标签: python mysql flask

我正在尝试将输入到Web表单中的数据插入到数据库表中,我将数据传递给函数以插入数据,但它并不成功 下面是我的代码

def addnew_to_database(tid,pid,usid,address,status,phno,email,ord_date,del_date):
    connection = mysql.connector.connect(user='admin_operations', password='raghu',host='127.0.0.1',database='tracking_system')
    try:
        print tid,pid,usid,address,status,phno,email,ord_date,del_date
        cursor = connection.cursor()
        cursor.execute("insert into track_table (tid,pid,usid,address,status,phno,email,ord_date,del_date) values(tid,pid,usid,address,status,phno,email,ord_date,del_date)")
        cursor.execute("insert into user_table (tid,usid) values(tid,usid)")
    finally:
        connection.close()

1 个答案:

答案 0 :(得分:1)

你需要提交你的陈述:

connection.commit()

您需要在insert语句中添加数据:

cursor.execute('''insert into user_table (tid, usid) 
                  values ({}, {})'''.format(tid, usid))

(未经测试)

<强>更新

我做了一个婴儿示例(并测试了它):

数据库设置:

$ mysql -u root
mysql> CREATE USER 'test_user' IDENTIFIED BY 'test_pass';
mysql> CREATE DATABASE test_db;
mysql> CREATE TABLE test_db.test_table (number INTEGER(16), string CHAR(16));
mysql> GRANT INSERT, SELECT, UPDATE, DELETE ON test_db.* TO 'test_user'@'%';
mysql> FLUSH PRIVILEGES;

# test:
$ mysql -u test_user -D test_db -p

然后这个python代码插入数据(非常基本的版本;没有异常处理,没有事务处理):

import mysql.connector as my

connection = my.connect(user='test_user', password='test_pass',
                        host='127.0.0.1', database='test_db')

cursor = connection.cursor()
cursor.execute('''INSERT INTO test_table(number, string) VALUES({}, '{}')
               '''.format(43, 'hello world'))
connection.commit()    

cursor.execute("SELECT * FROM test_table")
print(cursor.fetchall())
connection.close()

请注意'{}'周围的引号,其中.format输入字符串值。

这使用以下版本:

python3                 3.4.0-0ubuntu2
python3-mysql.connector 1.1.6-1
mysql                   5.5.44-0ubuntu0.14.04.1