@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().