一个TypeError: 'str' object is not callable错误求助
#!/usr/bin/python# -*- coding: utf-8 -*-
import MySQLdb as mdb
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
con = mdb.connect(host='192.168.1.212',user='root',passwd='123456',port=3307,db='xy_db_community_s12',charset='utf8');
with con:
name=" '%ac%' "
print name
print type(name)
cur = con.cursor(r'SELECT xy_tbl_guildmember.MemberName FROM xy_tbl_guildmember, xy_tbl_guild WHERE xy_tbl_guildmember.GUILD = xy_tbl_guild.GUILD AND xy_tbl_guild.GuildName LIKE %s AND xy_tbl_guildmember.GuildPos < 4;' %name)
#cur.execute("SELECT * FROM xy_tbl_guild")
#rows = cur.fetchall()
#for row in rows:
# print row
'''
numberrows=int(cur.rowcount)
print numberrows
for i in range(numberrows):
row=cur.fetchone()
print row,row,row,row,row,row,row,row,row,row,row,row
#rower=cur.fetchone()
#print rower
'''
rows=cur.fetchall()
for row in rows:
row_list=list(row)
print "%s" %(row_list)
#print type(row)
#print type(row_list)
错误提示/usr/bin/python /data/script/python/pycharm_obj_dir/python_exercise/mysql_02.py
Traceback (most recent call last):
'%ac%'
File "/data/script/python/pycharm_obj_dir/python_exercise/mysql_02.py", line 17, in <module>
<type 'str'>
cur = con.cursor(r'SELECT xy_tbl_guildmember.MemberName FROM xy_tbl_guildmember, xy_tbl_guild WHERE xy_tbl_guildmember.GUILD = xy_tbl_guild.GUILD AND xy_tbl_guild.GuildName LIKE %s AND xy_tbl_guildmember.GuildPos < 4;' %name)
File "build/bdist.linux-i686/egg/MySQLdb/connections.py", line 243, in cursor
TypeError: 'str' object is not callable
Process finished with exit code 1
这是 什么情况~ File "build/bdist.linux-i686/egg/MySQLdb/connections.py", line 243, in cursor有没有进去看看?LIKE的参数有什么特别要求 这个倒没进去看过~这个会有特殊要求么~回复 2# timespace
回复 3# 水底游
我没用过MySQLdb,不知道有什么特别要求,只是猜想,想到各种可能,才能一步一步定位么,当然了,需要你自己动手:lol:
with con:里面还要con.xxx吗?没查语法,不过记得别的语音with后不必再写with的那个object了 你这个有问题啊..cursor(self, cursorclass=None) method of MySQLdb.connections.Connection instance
Create a cursor on which queries may be performed. The
optional cursorclass parameter is used to create the
Cursor. By default, self.cursorclass=cursors.Cursor is
used.cursor 不能接这样的参数啊.
cur = con.cursor()
cur.execute('SELECT xy_tbl_guildmember.MemberName FROM xy_tbl_guildmember, xy_tbl_guild WHERE xy_tbl_guildmember.GUILD = xy_tbl_guild.GUILD AND xy_tbl_guild.GuildName LIKE %s AND xy_tbl_guildmember.GuildPos < 4' %name)
没见过 这种啊
cur = con.cursor(r'SELECT xy_tbl_guildmember.MemberName FROM xy_tbl_guildmember, xy_tbl_guild WHERE xy_tbl_guildmember.GUILD = xy_tbl_guild.GUILD AND xy_tbl_guild.GuildName LIKE %s AND xy_tbl_guildmember.GuildPos < 4;' %name)
不是 先cur = con.cursor()么?
然后通过cur.execute(..sql...) 和 cur.fetchall() 么
页:
[1]