錯誤原因
class MysqlManager(object):
def __init__(self):
self.host = MYSQL_HOST
self.user = MYSQL_USER
self.password = MYSQL_PASSWORD
self.db = MYSQL_DB
self.charset = 'utf8'
def __connect(self):
return MySQLdb.connect(host=self.host, user=self.user, passwd=self.password, db=self.db, charset=self.charset)
def do_count(self, sql_str, sql_param):
connect = self.__connect()
cursor = connect.cursor()
try:
cursor.execute(sql_str, sql_param)
connect.commit()
return cursor.fetchone()
except Exception, e:
print e
import traceback
traceback.print_exc()
# 發生錯誤時會滾
connect.rollback()
finally:
# 關閉游標連接
cursor.close()
# 關閉數據庫連接
connect.close()
if __name__ == "__main__":
mysql_manager = MysqlManager()
sql = """
SELECT COUNT( * ) FROM `merchant_queue` WHERE sMerchantFullName = %s
"""
params = (
'JCPenney'
)
result = mysql_manager.do_count(sql, params)
結果老是報異常not all arguments converted during string formatting錯誤
,fuck
為什么
打斷點發現params居然是字符串
image.png
解決方法
原來元組只有元素時候,要加逗號,所以這里的params應該這樣
params = (
'JCPenney',
)
然后就,好了。。。哇靠