Sqlite3 Tutorial Query Python Fixed -
import sqlite3def main(): # Connect to database conn = sqlite3.connect('example.db') cursor = conn.cursor()
# Create table cursor.execute(''' CREATE TABLE IF NOT EXISTS employees ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, salary REAL ) ''') # Insert data employees = [ ('Alice', 50000), ('Bob', 60000), ('Charlie', 55000) ] cursor.executemany( 'INSERT INTO employees (name, salary) VALUES (?, ?)', employees ) conn.commit() # Query data cursor.execute('SELECT * FROM employees WHERE salary > ?', (52000,)) results = cursor.fetchall() print("Employees with salary > 52000:") for row in results: print(f"ID: row[0], Name: row[1], Salary: $row[2]:,.2f") # Close connection conn.close()
if name == "main": main()
cur.execute("UPDATE users SET email = ? WHERE id = ?", ("new@example.com", 1))
cur.execute("DELETE FROM users WHERE id = ?", (2,))
conn.commit()
def add_user(name, email, age):
with sqlite3.connect("my_database.db") as conn:
cursor = conn.cursor()
cursor.execute("""
INSERT INTO users (name, email, age)
VALUES (?, ?, ?)
""", (name, email, age))
# No need for explicit commit here (context manager does it)
def create_user(name: str, email: str, age: int) -> Optional[int]: """Fixed: Returns inserted user ID""" query = """ INSERT INTO users (name, email, age, created_at) VALUES (?, ?, ?, datetime('now')) """try: with get_db_connection() as conn: cursor = conn.cursor() cursor.execute(query, (name, email, age)) return cursor.lastrowid except sqlite3.IntegrityError as e: print(f"User with email email already exists: e") return None except sqlite3.Error as e: print(f"Database error: e") return None
update_employee_salary(1, 80000.00)
cursor = conn.cursor()
print("Database connected successfully!")
The most robust way to fix this is to set the text_factory property of the connection object to str. sqlite3 tutorial query python fixed
