Как я могу избежать ввода в базу данных MySQL в Python3?
Как я могу избежать ввода в базу данных MySQL в Python3? Я использую PyMySQL и работает нормально, но когда я пытаюсь сделать что-то вроде:
cursor.execute("SELECT * FROM `Codes` WHERE `ShortCode` = '{}'".format(request[1]))
это не сработает, если строка'
или же"
, Я также попробовал:
cursor.execute("SELECT * FROM `Codes` WHERE `ShortCode` = %s",request[1])
Проблема в том, что библиотека (PyMySQL) использует синтаксис форматирования для Python2.x,%
, это больше не работает.
Я также нашел это возможное решение
conn.escape_string()
вВот, но я не знаю, куда добавить этот код. Это все, что я получил:
import pymysql
import sys
conn = pymysql.connect( host = "localhost",
user = "test",
passwd = "",
db = "test")
cursor = conn.cursor()
cursor.execute("SELECT * FROM `Codes` WHERE `ShortCode` = {}".format(request[1]))
result = cursor.fetchall()
cursor.close()
conn.close()
Изменить: я решил это! В PyMySQL правильный путь выглядит следующим образом:
import pymysql
import sys
conn = pymysql.connect(host="localhost",
user="test",
passwd="",
db="test")
cursor = conn.cursor()
text = conn.escape(request[1])
cursor.execute("SELECT * FROM `Codes` WHERE `ShortCode` = {}".format(text))
cursor.close()
conn.close()
Гдеtext = conn.escape(request[1])
строка - это то, что ускользает от кода. Нашел его внутри кода PyMySQL. Там,request[1]
это вход.