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