Тема: Безпечні екрановані SQL запити (перекладіть мені з Python)
Я страждаю...
От я роблю запити так:
$result = mysql_query(
"select count(*) from streets where name='$name';"
) or die(mysql_error());
Прочитав що є такий ніштячок як mysql_real_escape_string. Реально крута назва для функції, але кожну змінну загорнути я можу й забути. Тепер питання, чи можу я написати функцію sq, так щоб вона працювала наступним чином:
def sq(query, **params):
return mysql_query(query.format(
**{k: mysql_real_escape_string(v) for k, v in params.items()}
)) or die(mysql_error())
Тобто щоб можна було викликати
sq("select count(*) from streets where name='{name}';", name=$name);
І все було безпечно.