Вы можете использовать интерполяцию строки:
$db.execute %{DELETE FROM templates WHERE id = #{deleteid}}
$db.execute %Q{DELETE FROM templates WHERE id = #{deleteid}}
UPDATE
Пользователь может передать произвольную строку. Использование deleteid
может быть опасным. Как комментировал @muistooshort, вам следует избегать deleteid
.
Обратитесь к документации вашего db-драйвера к методам, которые принимают параметр и упускают параметр (или метод prepare
).
Например, если вы используете sqlite3-ruby, вы можете использовать Database#query
, который сбежит для вас.
$db.prepare(%q{DELETE FROM templates WHERE id = ?}, [deleteid])
в пг, используйте Connection#exec_params
:
водитель
$db.exec_params(%q{DELETE FROM templates WHERE id = $1}, [deleteid])
Какая база данных находится в '$ db'? Простое бросание неопределенных значений в SQL является уголовно безответственным. –