2013-04-06 252 views
0

下面的代码是我的CGI脚本,我试图做一个插入命令。MYSQL CGI脚本

#! C:\Python27\python.exe -u 

import cgi 
import MySQLdb 
import xml.sax.saxutils 


query = cgi.parse() 
db = MySQLdb.connect(


host = "127.0.0.1", 
user = "root", 
passwd = "mysql123", 
db = "welcome") 

print 'Content-type: text/plain\n\n<?xml version="1.0" encoding="utf-8"?>\n<result>' 

try: 
c = db.cursor() 
c.execute("insert into welcome.registrations values ('test','test',now())") 
print '\t<update>true</update>' 
except: 
print '\t<update>false</update>' 


print "</result>" 
当我运行转至该网址

- .COM/cgi-bin目录/ reg.cgi,我没有找到在MySQL数据库

+0

是你看到这 打印“”正在打印 – 2013-04-06 07:59:08

+0

我的意思是你的apache配置存在一些问题 – 2013-04-06 08:00:03

+0

你可能会考虑使用web轻量级框架,如[flask](http://flask.pocoo.org)或[bottle](http ://bottlepy.org/)。使用CGI似乎是一个巨大的头痛。 – 2013-04-06 08:06:55

回答

1

做任何插入操作需要c.execute()后做db.commit()

或者你可以这样做:

with db: 
    c = db.cursor() 
    c.execute("insert into welcome.registrations values ('test','test',now())") 
+0

非常感谢你Nathan,我做的是一个愚蠢的错误 – user2104391 2013-04-06 08:04:29

0

确保你每一次插入后db.commit()(或到底,任何将工作):

try: 
c = db.cursor() 
c.execute("insert into welcome.registrations values ('test','test',now())") 
db.commit() 
db.close() # Make sure you close the connection else multiple connections will result in hanging of mysql server.