python mysql Commands out of sync相关的问题,pythoncommands,python 执行my
python mysql Commands out of sync相关的问题,pythoncommands,python 执行my
python 执行mysql 出现Commands out of sync; you can't run this command now
请问怎么解决啊
错误提示:
Exception mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now") in <bound method DictCursor.__del_ of <MySQLdb.cursors.DictCursor object at 0x7f5ebc265050>> ignored
import json
import re
import traceback
import binascii
import time
from django.db import models
import MySQLdb as mdb
import MySQLdb.cursors
search_conn = mdb.connect('127.0.0.1', '**', '', '', port=9306, charset='utf8', cursorclass=MySQLdb.cursors.DictCursor)
search_conn.ping(True)
re_punctuations = re.compile(
ur"。|,|,|!|…|!|《|》|<|>|\"|'|:|:|?|\?|、|\||“|”|‘|’|;|\\|—|_|=|(|)|·|\(|\)| |\.|【|】|『|』|@|&|%|\^|\*|\+|\||<|>|~|`|\[|\]")
def get_conn():
return mdb.connect('127.0.0.1', '***', '', '', port=9306, charset='utf8', cursorclass=MySQLdb.cursors.DictCursor)
def escape_string(string):
return re.sub(r"(['`=\(\)|\-!@~\"&/\\\^\$])", r"\\\1", string)
def split_words(string):
string = re_punctuations.sub(u' ', string).replace(u'-', u' ')words = []for w in string.split(): try: words.append(w.encode('ascii').decode('ascii')) except: for c in w: words.append(c)return u'|'.join(words).strip(u'|')
class HashManager(models.Manager):
def search(self, keyword, start=0, count=10, category=None, sort=None): search_cursor = search_conn.cursor() sql = '''SELECT id FROM rt_main''' conds = [] values = [] if keyword: conds.append('MATCH(%s)') values.append(escape_string(keyword)) if category: conds.append('category=%s') values.append(binascii.crc32(category)&0xFFFFFFFFL) if conds: sql += ' WHERE ' + ' AND '.join(conds) if sort == 'create_time': sql += ' ORDER BY create_time DESC ' elif sort == 'length': sql += ' ORDER BY length DESC ' sql += ''' LIMIT %s,%s OPTION max_matches=1000, max_query_time=200 ''' search_cursor.execute(sql, values + [start, count]) items = list(search_cursor.fetchall()) search_cursor.execute('SHOW META') meta = {} for d in search_cursor.fetchall(): meta[d['Variable_name']] = d['Value'] sql = '''SELECT category, COUNT(*) AS num FROM rt_main ''' if conds: sql += ' WHERE ' + ' AND '.join(conds) sql += ''' GROUP BY category OPTION max_query_time=200''' search_cursor.execute(sql, values) cats = list(search_cursor.fetchall()) res = { 'result': { 'items': items, 'meta': meta, }, 'cats': { 'items': cats, }, } search_cursor.close() return resdef list_with_files(self, ids): res = [] if len(ids[0]) == 40: items = Hash.objects.filter(info_hash__in=ids).values() else: items = Hash.objects.filter(id__in=ids).values() res = list(items) items = FileList.objects.filter(info_hash__in=[x['info_hash'] for x in res]).values() for x in res: for y in items: if x['info_hash'] == y['info_hash']: try: x['files'] = json.loads(y['file_list']) except ValueError: pass items = Extra.objects.filter(hash_id__in=ids).values() for x in res: for y in items: if x['id'] == y['hash_id']: x['extra'] = y return resdef list_related(self, hash_id, name, count=10): string = split_words(name) if not string: return [] search_conn = get_conn() search_cursor = search_conn.cursor() try: sql = '''SELECT id FROM rt_main WHERE MATCH(%s) AND id<>%s LIMIT 0,%s OPTION max_matches=1000, max_query_time=200''' search_cursor.execute(sql, (string, hash_id, count)) ids = [x['id'] for x in search_cursor.fetchall()] items = Hash.objects.only('name', 'length', 'create_time', 'id').filter(id__in=ids).values() except: traceback.print_exc() items = [] search_cursor.close() search_conn.close() return items
这个是Mysql报的错,你分析一下自己的sql语句,看有没有什么问题
编橙之家文章,
相关内容
- Python能做C/S.exe计算器程序吗?,pythons.exe,大家好,我是
- python3编辑器sublime text 2输出中文字符UnicodeEncodeError,
- Python pylo文件发送怎么操作,pythonpylo文件发送,我在用
- python文档中源码看不懂求大神指导,python大神,在查看文
- Python MongoDB正则与模糊查询出错,pythonmongodb,使用正则表
- 大家聊聊都有什么学习python的好方法或是技巧分享下吧
- Python下列源码中单例模式怎么理解,python源码理解,de
- Python验证码生成哪个包或是方法最实用,python验证码
- 请问epoll不触发hup是什么问题,请问epoll触发hup,一个简
- 为什么msys生成exe后被python subprocess调用却没有得不到返
评论关闭