Из-за того, что параметр называется также, как глобальная переменная, вот и не работает.
Примерно должно быть так:
UPD: исправлен пример, спасибо
MinTnt за внимательность
import sqlite3
db = sqlite3.connect('base.db')
cursor = db.cursor()
def add():
a = 1
cursor.execute('INSERT INTO base(number) VALUES("{}")'.format(a))
def change():
pass
add()
А ещё лучше в if-name-main стиле:
https://ru.stackoverflow.com/questions/515852/
import sqlite3
def add(cursor):
a = 1
cursor.execute('INSERT INTO base(number) VALUES("{}")'.format(a))
def change(cursor):
pass
if __name__ == "__main__":
db = sqlite3.connect('base.db')
cursor = db.cursor()
add(cursor)