Невозможно получить данные из моей базы данных sql, используя pymsql - PullRequest
0 голосов
/ 23 февраля 2019

Я пытался получить данные из моей базы данных.Я был успешным, однако, на этот раз внутри заявления if.Код выглядит следующим образом:

cur_msql = conn_mysql.cursor(cursor=pymysql.cursors.DictCursor)
select_query = """select x,y,z from table where type='sample' and code=%s"""
cur_msql.execute(select_query, code)
result2 = cur_msql.fetchone()
if(result2==None):
    insert_func(code)
    select_query = f"""select x,y,z from table where type='sample' and code='{code}'"""
    mycur = conn_mysql.cursor(cursor=pymysql.cursors.DictCursor)
    print(select_query)
    mycur.execute(select_query)
    result3 = mycur.fetchone()
    if(result2==None):
         result2=result3

Теперь я вижу, что insert_func успешно вставляет в «таблицу».Однако при попытке извлечь эту строку сразу после вставки она возвращает None, как будто строка отсутствует.При отладке я обнаружил, что результат3 также None.Ничто не выглядит неправильно для меня, но это не работает.

1 Ответ

0 голосов
/ 23 февраля 2019

вы не выполняете его правильно, в cur_msql.execute вы отправляете запрос и кортеж значений, и вы отправляете только значение:

cur_msql = conn_mysql.cursor(cursor=pymysql.cursors.DictCursor)
select_query = "select learnpath_code,learnpath_id,learnpath_name from contentgrail.knowledge_vectors_test where Type='chapters' and code=%s"
cur_msql.execute(select_query, (meta['chapter_code'],))
result2 = cur_msql.fetchone()
...