[][src]Macro concatsql::sanitize_like

macro_rules! sanitize_like {
    ($pattern:tt) => { ... };
    ($pattern:tt, $escape:tt) => { ... };
}

Sanitizes a string so that it is safe to use within an SQL LIKE statement.

This method uses escape_character to escape all occurrences of '_' and '%'.

Examples

assert_eq!(sanitize_like!("%foo_bar"),      "\\%foo\\_bar");
assert_eq!(sanitize_like!("%foo_bar", '!'), "!%foo!_bar");
let name = "Ali";
let sql = prep!("SELECT * FROM users WHERE name LIKE ") + ("%".to_owned() + name + "%");
assert_eq!(sql.simulate(), "SELECT * FROM users WHERE name LIKE '%Ali%'");

let name = String::from("%Ali%");
let sql = prep!("SELECT * FROM users WHERE name LIKE ") + ("%".to_owned() + &sanitize_like!(name, '$') + "%");
assert_eq!(sql.simulate(), "SELECT * FROM users WHERE name LIKE '%$%Ali$%%'");