python+cgi+mysql

python+cgi+mysql

我用unix运行以下cgi的时候,总是显示: name 'word' not defined 。
错误显示出现在这一行:result=r.execute("select * from muc where word='%s'" % (word))
可是这个word是一个文本区的input name,
就是这个:  http://www.ug.cs.usyd.edu.au/~jali1814/test.html

问题应该出在哪里? 大侠们帮帮忙哦,先谢过了

#!/local/usr/bin/python
import cgi

import MySQLdb



inputs = cgi.FieldStorage()
a=[]
NAMEFIELD='word'
if inputs.has_key(NAMEFIELD):
  word=inputs[NAMEFIELD].value

r = conn.cursor()
result=r.execute("select * from muc where word='%s'" % (word))
for row in result:
  b=r.fetchone()
  for c in b:
     a.append(c)
word没定义

if inputs.has_key(NAMEFIELD):
  word=inputs[NAMEFIELD].value
同上


QUOTE:
原帖由 3227049 于 2008-5-15 20:54 发表
word没定义

if inputs.has_key(NAMEFIELD):
  word=inputs[NAMEFIELD].value

那2行我加上了,但还是不行
word=null
if inputs.has_key(NAMEFIELD):
  word=inputs[NAMEFIELD].value


QUOTE:
原帖由 lollol 于 2008-5-15 21:48 发表



那2行我加上了,但还是不行

那2行本来就是你写的。。
但是if后面的不成立。。。word就没定义,也就成了你的错误。。。


QUOTE:
原帖由 luffy.deng 于 2008-5-15 22:31 发表
word=null
if inputs.has_key(NAMEFIELD):
  word=inputs[NAMEFIELD].value

是 word=None 对吧, 因为我试word=null出现了错误

在运行的时候, 在for row in result:那里出现了iteration over non-sequence,  但我一点都不明白是什么意思........
然后我把result 改成result.readlines():, 还是不行 却出现了 long object has no attribute readlines

可以帮忙解决吗? 谢谢
MySQLdb没用过dbapi可以这样写
r = conn.cursor()
r.execute("select * from muc where word='%s'" % (word))
for row in r:
   print row[0]