我不明白为什么它不起作用。我创建了几个数据库和表格,显然没有问题。但我坚持这个从django数据模型创建的表。为了阐明我所做的,从mysql控制台创建了新的数据库和表,并尝试从python插入并工作。但是,这对我来说很奇怪。MySQL Python插入奇怪?
class Experiment(models.Model):
user = models.CharField(max_length=25)
filetype = models.CharField(max_length=10)
createddate= models.DateField()
uploaddate = models.DateField()
time = models.CharField(max_length=20)
size = models.CharField(max_length=20)
located= models.CharField(max_length=50)
这是鉴于在MySQL控制台
mysql> describe pmass_experiment;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user | varchar(25) | NO | | NULL | |
| filetype | varchar(10) | NO | | NULL | |
| createddate | date | NO | | NULL | |
| uploaddate | date | NO | | NULL | |
| time | varchar(20) | NO | | NULL | |
| size | varchar(20) | NO | | NULL | |
| located | varchar(50) | NO | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
8 rows in set (0.01 sec)
以上pmass_experiment表由Django的ORM后蟒蛇manage.py执行syncdb
现在我想插入数据创建通过python MySQLdb进入pmass_experiment
import MySQLdb
import datetime,time
import sys
conn = MySQLdb.connect(
host="localhost",
user="root",
passwd="root",
db="experiment")
cursor = conn.cursor()
user='tchand'
ftype='mzml'
size='10MB'
located='c:\'
date= datetime.date.today()
time = str(datetime.datetime.now())[10:19]
#Insert into database
sql = """INSERT INTO pmass_experiment (user,filetype,createddate,uploaddate,time,size,located)
VALUES (user, ftype, date, date, time, size, located)"""
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
conn.commit()
except:
# Rollback in case there is any error
conn.rollback()
# disconnect from server
conn.close()
但是,不幸的是没有插入。我猜这可能是由于primary_key(id)在表中不自动递增。
mysql> select * from pmass_experiment;
Empty set (0.00 sec)
你能指出我的错吗?
感谢
您正在捕捉所有异常,因此看不到错在哪里。要么再次抛出异常,要么至少打印回溯。 – utapyngo
除非有一些真正智能的字符串插值在那里进行,否则您的查询将像这样插入到blah(用户)值(用户)这个无效的数据库中到达DB_literally_。 – Mat
不应该c:\是双重逃脱? 'c:\'这可能是问题所在? – Serdalis