【问题标题】:Unable to retrieve data from my sql database using pymysql无法使用 pymysql 从我的 sql 数据库中检索数据
【发布时间】:2019-07-17 14:07:39
【问题描述】:

我一直在尝试从我的数据库中检索数据。然而,这次我在 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,就好像该行不存在一样。在调试时我发现 result3 也是None。在我看来没有任何问题,但它不起作用。

【问题讨论】:

    标签: mysql python-3.x database pymysql


    【解决方案1】:

    您没有以正确的方式执行它,在 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()
    

    【讨论】:

    • 如果该行存在于表中,result2 不是 none。如果它不只是存在,它就没有。因此,我保留了 if 条件。因此,它适用于我在 if 语句之前发送的方式。但是,在 if 语句中,插入成功后,尽管刚刚插入,但检索到的数据是空的。
    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 2014-04-20
    相关资源
    最近更新 更多