summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2023-01-14 23:08:32 (GMT)
committerGitHub <noreply@github.com>2023-01-14 23:08:32 (GMT)
commit1981db9de1f2ce4057de8db1497cd924be82a717 (patch)
tree64cf28fd28860142837085de0a28fff3f9bf2ecb
parent94f9198f58371ee0dc93e874b685545dcbd55eac (diff)
downloadcpython-1981db9de1f2ce4057de8db1497cd924be82a717.zip
cpython-1981db9de1f2ce4057de8db1497cd924be82a717.tar.gz
cpython-1981db9de1f2ce4057de8db1497cd924be82a717.tar.bz2
gh-100668: Clarify how sqlite3 maps parameters onto placeholders (GH-100960)
(cherry picked from commit 206f05a46b426eb374f724f8e7cd42f2f9643bb8) Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com> Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
-rw-r--r--Doc/library/sqlite3.rst26
1 files changed, 17 insertions, 9 deletions
diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst
index ec1b643..2cc0d8a 100644
--- a/Doc/library/sqlite3.rst
+++ b/Doc/library/sqlite3.rst
@@ -1437,15 +1437,18 @@ close the single quote and inject ``OR TRUE`` to select all rows::
Instead, use the DB-API's parameter substitution. To insert a variable into a
query string, use a placeholder in the string, and substitute the actual values
into the query by providing them as a :class:`tuple` of values to the second
-argument of the cursor's :meth:`~Cursor.execute` method. An SQL statement may
-use one of two kinds of placeholders: question marks (qmark style) or named
-placeholders (named style). For the qmark style, ``parameters`` must be a
-:term:`sequence <sequence>`. For the named style, it can be either a
-:term:`sequence <sequence>` or :class:`dict` instance. The length of the
-:term:`sequence <sequence>` must match the number of placeholders, or a
-:exc:`ProgrammingError` is raised. If a :class:`dict` is given, it must contain
-keys for all named parameters. Any extra items are ignored. Here's an example of
-both styles:
+argument of the cursor's :meth:`~Cursor.execute` method.
+
+An SQL statement may use one of two kinds of placeholders:
+question marks (qmark style) or named placeholders (named style).
+For the qmark style, *parameters* must be a
+:term:`sequence` whose length must match the number of placeholders,
+or a :exc:`ProgrammingError` is raised.
+For the named style, *parameters* should be
+an instance of a :class:`dict` (or a subclass),
+which must contain keys for all named parameters;
+any extra items are ignored.
+Here's an example of both styles:
.. testcode::
@@ -1472,6 +1475,11 @@ both styles:
[('C', 1972)]
+.. note::
+
+ :pep:`249` numeric placeholders are *not* supported.
+ If used, they will be interpreted as named placeholders.
+
.. _sqlite3-adapters: