Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 206f05a

Browse files
gh-100668: Clarify how sqlite3 maps parameters onto placeholders (#100960)
Co-authored-by: C.A.M. Gerlach <[email protected]>
1 parent 124af17 commit 206f05a

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

Doc/library/sqlite3.rst

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1940,15 +1940,18 @@ close the single quote and inject ``OR TRUE`` to select all rows::
19401940
Instead, use the DB-API's parameter substitution. To insert a variable into a
19411941
query string, use a placeholder in the string, and substitute the actual values
19421942
into the query by providing them as a :class:`tuple` of values to the second
1943-
argument of the cursor's :meth:`~Cursor.execute` method. An SQL statement may
1944-
use one of two kinds of placeholders: question marks (qmark style) or named
1945-
placeholders (named style). For the qmark style, ``parameters`` must be a
1946-
:term:`sequence <sequence>`. For the named style, it can be either a
1947-
:term:`sequence <sequence>` or :class:`dict` instance. The length of the
1948-
:term:`sequence <sequence>` must match the number of placeholders, or a
1949-
:exc:`ProgrammingError` is raised. If a :class:`dict` is given, it must contain
1950-
keys for all named parameters. Any extra items are ignored. Here's an example of
1951-
both styles:
1943+
argument of the cursor's :meth:`~Cursor.execute` method.
1944+
1945+
An SQL statement may use one of two kinds of placeholders:
1946+
question marks (qmark style) or named placeholders (named style).
1947+
For the qmark style, *parameters* must be a
1948+
:term:`sequence` whose length must match the number of placeholders,
1949+
or a :exc:`ProgrammingError` is raised.
1950+
For the named style, *parameters* should be
1951+
an instance of a :class:`dict` (or a subclass),
1952+
which must contain keys for all named parameters;
1953+
any extra items are ignored.
1954+
Here's an example of both styles:
19521955

19531956
.. testcode::
19541957

@@ -1975,6 +1978,11 @@ both styles:
19751978

19761979
[('C', 1972)]
19771980

1981+
.. note::
1982+
1983+
:pep:`249` numeric placeholders are *not* supported.
1984+
If used, they will be interpreted as named placeholders.
1985+
19781986

19791987
.. _sqlite3-adapters:
19801988

0 commit comments

Comments
 (0)