如何使用触发器转义 mysql 上的字符串?

How do I escape string on mysql using triggers?

我需要在另一个 table 上存储查询并备份它们,它工作正常,直到一些双引号 (") 或单引号 (') 出现在列值中所以当我做备份时,它弄乱了查询。

我在 mysql

上创建了触发器前插入
BEGIN
    SET @col_names_str = 'option_id , option_name , option_value , autoload';
    SET @col_vals_str = CONCAT('"', NEW.option_id, '"', ',', '"', NEW.option_name, '"', ',', '"', NEW.option_value, '"', ',', '"', NEW.autoload, '"');
    SET @cur_query = CONCAT('INSERT INTO `wp_options` ', '(', @col_names_str, ')', ' VALUES ', '(', @col_vals_str, ')', ';');
    INSERT INTO wp_query_recorder (id, query, table_name) VALUES (NULL, @cur_query, 'wp_options');
END

我想在插入另一个列之前转义该列的值 table。

例如这样的数据

"O:8:"stdClass":1:{s:12:"last_checked";i:1519369979;}"

至此

'O:8:\"stdClass\":1:{s:12:\"last_checked\";i:1519369919;}'

类似这样的事情esc_sql(NEW.option_value),这可以吗?

我认为您正在寻找 QUOTE() 函数。