pythonmysql:cursor.excute(query,args)失败,cursor.execute(query)为同一查询传递

kyks70gy  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(210)

我有一个python函数,它可以获得如下版本信息:

def get_version_info(build_id, table_name='build_info'):
    query = "SELECT `build_commit` FROM `" + table_name + "`  WHERE `build_id` = %s "
    args = (build_id)
    #query = "SELECT `build_commit` FROM `" + table_name + "`  WHERE `build_id` = " + build_id
    build_commit = None
    try:
        dbconfig = read_db_config()
        conn = MySQLConnection(**dbconfig)
        cursor = conn.cursor()
        cursor.execute(query, args)
        #cursor.execute(query)
        row = cursor.fetchone()
        if row is not None:
           build_commit = row[0]

此函数总是返回 None 不管怎样。当我将其改为使用非参数化查询时,如下所示。它总是正确返回 build_commit .

def get_version_info(build_id, table_name='build_info'):
    query = "SELECT `build_commit` FROM `" + table_name + "`  WHERE `build_id` = " + build_id
    ...
    cursor.execute(query)

我在cursor.execute的参数化查询中遗漏了什么,这就是它失败的原因。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题