使用Python从SQL中搜索元素

使用Python从SQL中搜索元素,python,sql,database,Python,Sql,Database,我正在编写一个python脚本,以在元素ID预先存在的情况下执行某些特定任务。我已经创建了一个保存数据元素的数据库 我想知道数据库中是否存在元素链接ID。我该怎么做 我写了一个不完美的小剧本。我得到的输出是不存在这样的元素 link_ID = link_1234 sql = ''' SELECT link_ID from link_table where link_ID=? ''' var = (link_ID) conn.execute(sql, [var]) conn.commit() i

我正在编写一个python脚本,以在元素ID预先存在的情况下执行某些特定任务。我已经创建了一个保存数据元素的数据库

我想知道数据库中是否存在元素链接ID。我该怎么做

我写了一个不完美的小剧本。我得到的输出是不存在这样的元素

link_ID = link_1234
sql = ''' SELECT link_ID from link_table where link_ID=? '''
var  = (link_ID)
conn.execute(sql, [var])
conn.commit()
if conn.execute(sql, [var]) == True:
    print("Search Successful")
    flag = 1
else:
    print("No such element exists")
    flag = 0

这里有很多问题。首先,您应该从连接创建一个游标对象,并使用该对象执行查询:

c = conn.cursor()
c.execute(sql,var)
其次,execute希望插入一个值元组,而不是一个列表,因此请执行以下操作:

var = (link_ID,)
c.execute(sql,var)
或:

最后,c.execute返回游标对象,而不是查询的成功。应使用fetchone()获取查询结果,如果查询未返回行,则fetchone()的返回值将为None:

result = c.fetchone()
if result is not None:
    print('Success:',result)
else:
    print('No row found for', link_ID)
result = c.fetchone()
if result is not None:
    print('Success:',result)
else:
    print('No row found for', link_ID)