我正在尝试将输入到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()

最佳答案

您需要提交您的声明:

connection.commit()


并且您需要将数据添加到您的插入语句中:

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

07-25 23:27
查看更多