def create_question(tid, username, abstract, content): # 创建问题 conn = yield async_connect() cur = conn.cursor() if isinstance(abstract, str): abstract = escape_string(abstract) if isinstance(content, str): content = escape_string(content) sql1 = "INSERT INTO t_question (abstract, content, uid, tid) VALUES ('%s', '%s', (SELECT uid FROM t_user WHERE username='******'), %d);" % ( abstract, content, username, tid) sql2 = "SELECT LAST_INSERT_ID() as qid FROM t_question;" try: data = yield cur.execute(sql1) yield cur.execute(sql2) last_insert = cur.fetchone() except Exception as e: data = 0 last_insert = {} finally: cur.close() conn.close() raise gen.Return((data, last_insert.get('qid', None)))
def create_answer(qid, user, content): # 创建答案 conn = yield async_connect() cur = conn.cursor() if isinstance(content, str): content = escape_string(content) sql1 = "INSERT INTO t_answer (qid, uid, content) VALUES (%d, (SELECT uid FROM t_user WHERE username='******'), '%s');" % (qid, user, content) sql2 = "UPDATE t_question SET answer_count = answer_count + 1 WHERE qid=%d;" % qid try: data = yield cur.execute(sql1) yield cur.execute(sql2) except Exception as e: data = 0 finally: cur.close() conn.close() raise gen.Return(data)