【问题标题】:Error inserting data into varchar that contains apostrophe? [duplicate]将数据插入包含撇号的 varchar 时出错? [复制]
【发布时间】:2015-08-15 21:30:41
【问题描述】:

我有一个包含 mysql 插入的 ruby​​ 脚本,该脚本工作正常,直到它到达包含包含撇号的数据的行。该行也使用变量填充,我不确定如何转义字符,以便插入成功。

有什么想法吗?

【问题讨论】:

    标签: mysql ruby rubygems


    【解决方案1】:

    在连接对象上使用quote方法:

    quote(value, column = nil)
    

    API Documentation Link

    引用列值有助于防止 SQL 注入攻击。 示例:

    my_name    = ActiveRecord::Base.connection.quote("John O'Neil")
    my_address = ActiveRecord::Base.connection.quote("R'lyeh")
    
    query = "INSERT INTO companies (name,address) VALUES (#{my_name}, #{my_address})"
    
    ActiveRecord::Base.connection.execute(query);
    

    原帖:

    看到这个帖子:Escaping a single quotation within SQL query

    【讨论】:

    • 在复制their answer 时,您可能希望至少给某人点赞。
    • 对不起@muistooshort,已经用原始链接更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 2011-05-17
    • 2010-12-27
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多