THE BUSINESS DIARIES
THE BUSINESS DIARIES

Reputation: 39

Search element from SQL using Python

I am writing a python script to perform some specific task if an element ID pre-exists. I have created a database where I am saving the data elements.

I want to find out if the element link_ID exists in the database or not. How will I do that?

I have written a small script which is not perfect. The output I am getting is No such element exists.

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

Upvotes: 0

Views: 1362

Answers (1)

T Burgis
T Burgis

Reputation: 1435

You have a number of problems here. First, you should create a cursor object from your connection and use that to execute your query:

c = conn.cursor()
c.execute(sql,var)

Secondly, execute wants a tuple of values to interpolate, not a list, so do this:

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

Or:

c.execute(sql,(link_ID,))

Lastly, c.execute returns the cursor object rather than the success of the query. You should fetch the result of the query using fetchone(), if your query didn't return a row then the return value of fetchone() will be None:

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

Upvotes: 1

Related Questions