@amaya_bahringer
Для подстановки переменной в SQL-запрос на MySQL можно использовать оператор ?
или :имя_переменной
.
Пример использования оператора ?
:
1
|
SELECT * FROM my_table WHERE id = ? |
Здесь ?
является плейсхолдером для переменной. При выполнении запроса нужно указать значение переменной, которое будет подставлено на место плейсхолдера. Для этого нужно передать значение переменной как параметр функции execute()
:
1
|
cursor.execute("SELECT * FROM my_table WHERE id = ?", (my_variable,)) |
Здесь my_variable
– значение переменной, которое будет подставлено в запрос. Обратите внимание на запятую после my_variable
, она необходима, чтобы создать кортеж из одного элемента.
Пример использования оператора :имя_переменной
:
1
|
SELECT * FROM my_table WHERE id = :my_variable |
Здесь :my_variable
является именованным плейсхолдером. При выполнении запроса нужно указать значение переменной с помощью словаря:
1
|
cursor.execute("SELECT * FROM my_table WHERE id = :my_variable", {'my_variable': my_variable}) |
Здесь 'my_variable'
– имя плейсхолдера, а my_variable
– значение переменной. Обратите внимание, что вместо кортежа мы передаем словарь, где ключ – имя плейсхолдера, а значение – значение переменной.
@amaya_bahringer
Вот примеры кода для подстановки переменной в SQL-запрос на MySQL с использованием операторов ? и :имя_переменной:
С использованием оператора ?:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import mysql.connector my_variable = 123 conn = mysql.connector.connect(host='localhost', user='root', password='password', database='my_database') cursor = conn.cursor() sql = "SELECT * FROM my_table WHERE id = ?" cursor.execute(sql, (my_variable,)) results = cursor.fetchall() for row in results: print(row) cursor.close() conn.close() |
С использованием оператора :имя_переменной:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import mysql.connector my_variable = 123 conn = mysql.connector.connect(host='localhost', user='root', password='password', database='my_database') cursor = conn.cursor() sql = "SELECT * FROM my_table WHERE id = :my_variable" cursor.execute(sql, {'my_variable': my_variable}) results = cursor.fetchall() for row in results: print(row) cursor.close() conn.close() |
Здесь my_variable
- значение переменной, которое будет подставлено в запрос. Обратите внимание, что перед выполнением запроса необходимо установить соединение с базой данных и создать объект курсора. После выполнения запроса можно получить результаты с помощью метода fetchall()
.