0

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
1

1 Answer 1

1

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)
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.