Nonetheless for debugging purposes I'd do something like insertValues = { 'f1', Clnt_Num, 'f2', client_name.get(), 'f3', address_name.get(), 'f4', city_name.get(), 'f5', state_name.get(), 'f6', zipcode_name.get(), 'f7', email_name.get(), 'f8', IP_1_name.get(), 'f9', IP_2_name.get(), 'f10', Keys_ordered_name.get(), 'f11', Order_number_name.get(), 'f12', Date_ordered_name.get(), 'f13', Agent_code_name.get(), 'f14', Client_logo_name.get(), 'f15', Billing_mth_name.get() } for key, value in insertValues.items(): print(key, type(value), value) cur.execute("INSERT INTO NiCE_clients VALUES (:f1, :f2, :f3, :f4, :f5, :f6, :f7, :f8, :f9, :f10, :f11, :f12, :f13, :f14, :f15)", insertValues) And then paste the results, along with the full exception text.