import sqlite3
with sqlite3.connect(':memory:') as db:
    db.execute('CREATE TABLE users(id INTEGER PRIMARY KEY,name TEXT NOT NULL)')
    db.executemany('INSERT INTO users VALUES(?,?)', [(1,'Ada'),(2,'Bo'),(3,'Cy')])
    value = "' OR 1=1 --"
    # Deliberately unsafe negative fixture, only in this disposable database.
    unsafe = db.execute("SELECT id FROM users WHERE name = '"+value+"'").fetchall()
    safe = db.execute('SELECT id FROM users WHERE name = ?', (value,)).fetchall()
    assert len(unsafe) == 3 and safe == []
    print(f'SQLite {sqlite3.sqlite_version}: concatenated={len(unsafe)} bound={len(safe)}')
