水底游 发表于 2014-05-15 18:48

一个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
这是 什么情况~

timespace 发表于 2014-05-15 19:04

File "build/bdist.linux-i686/egg/MySQLdb/connections.py", line 243, in cursor有没有进去看看?LIKE的参数有什么特别要求

水底游 发表于 2014-05-15 19:21

这个倒没进去看过~这个会有特殊要求么~回复 2# timespace


   

timespace 发表于 2014-05-15 19:37

回复 3# 水底游
我没用过MySQLdb,不知道有什么特别要求,只是猜想,想到各种可能,才能一步一步定位么,当然了,需要你自己动手:lol:


   

r2007 发表于 2014-05-15 20:46

with con:里面还要con.xxx吗?没查语法,不过记得别的语音with后不必再写with的那个object了

reyleon 发表于 2014-05-16 17:34

你这个有问题啊..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)

Linux_manne 发表于 2014-05-19 10:47

没见过 这种啊
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]
查看完整版本: 一个TypeError: 'str' object is not callable错误求助