У меня есть MySQL-запрос в Python с использованием MySQLdb, который я хочу дать мне другое количество строк в зависимости от наличия или отсутствия LIMIT.Объединить строку с другой, которая содержит переменную
Так, что-то вроде:
sql = "SELECT URL, Name AS Category
FROM sitelist sl
INNER JOIN sitecategory sc ON sc.PlacementCategory_id = sl.Category_id "
if limit > 0 :
sql += "LIMIT %s", (limit)
Однако это не удается:
TypeError: cannot concatenate 'str' and 'tuple' objects
Как я смог бы объединить строку, содержащую limit
номер при сохранении запроса 'безопасной'? В случае вышеприведенной является отдельной строкой, приведенное выше работает правильно.
В PHP я бы просто использовал подготовленную инструкцию PDO с bindparam()
, но я не могу найти ничего подобного в Python.
В вашем случае: используйте '' LIMIT% d "% limit'! –
Это безопасно использовать в SQL-запросе? Я видел некоторые другие ответы и результаты, которые указывали, что это не так. – user991710
'% d' ограничено целыми числами, в них нет вредоносного символа. Вы не должны использовать '% s'. –