无法使用python将值插入mysql

时间:2013-07-16 11:40:58

标签: python mysql database python-2.7 insert

我正在尝试使用python向mysql插入值,但代码无效,它返回一个空白页面&没有写在数据库表中的值,请帮帮我

import MySQLdb as mdb

con = mdb.connect('localhost', 'python', '123456', 'python');

cur = con.cursor()

cur.execute("INSERT INTO test VALUES('234','566789','rohan','rajesh','78979','Maths','25','50','75','P')")
cur.commit()

cur.close()
con.close()

2 个答案:

答案 0 :(得分:0)

请改为尝试:

import MySQLdb as mdb

con = mdb.connect(host='localhost', user='python', passwd='123456', db='python');

cur = con.cursor()
cur.execute("INSERT INTO test(ecode) VALUES('Manoj')")
cur.execute("INSERT INTO test(htno) VALUES('Manoj')")
cur.execute("INSERT INTO test(name) VALUES('Manoj')")
cur.execute("INSERT INTO test(fathername) VALUES('Manoj')")
cur.execute("INSERT INTO test(subcode) VALUES('Manoj')")
cur.execute("INSERT INTO test(subject) VALUES('Manoj')")
cur.execute("INSERT INTO test(internals) VALUES('Manoj')")
cur.execute("INSERT INTO test(externals) VALUES('Manoj')")
cur.execute("INSERT INTO test(total) VALUES('Manoj')")
cur.execute("INSERT INTO test(result) VALUES('Manoj')")

cur.commit()

cursor.close()
con.close()

有几个问题:

  • 未定义python变量
  • 未定义success变量
  • MySQLdb
  • 不支持
  • 上下文管理器

但是,我不明白为什么你需要在不同的字段中插入Manoj值的行。

UPD,你的sql语法有错误(在566789之前缺少引号char):

cur.execute("INSERT INTO test VALUES('234','566789','rohan','rajesh','78979','Maths','25','50','75','P')")

希望有所帮助。

答案 1 :(得分:0)

你的Python字符串必须与普通的MySQL语句完全一样,所以一个好主意是尝试在MySQL提示符下执行它以查看它返回的内容。没有指定字段,例如

INSERT INTO FOO VALUES (4, 5, 6)

而不是

INSERT INTO FOO (X, Y, Z) VALUES (4, 5, 6)

将按照表中定义的顺序插入值(如使用DESCRIBE命令所示),但通常不是一个好主意,例如表的布局会发生变化。

您需要确保所有字符串都有开始和结束引号 -​​ 您的566789字符串不在您给出的示例中。你也传递看似整数的字符串。如果它们在表格中定义为整数,则需要删除引号。

希望这有帮助。