当前位置: 首页 > 面试题库 >

在Codeigniter中转义SQL查询

宫高义
2023-03-14
问题内容

我正在使用CodeIgniter将一些数据插入MySQL表中。因为我正在使用INSERT IGNORE INTO并且不想编辑活动记录类以启用此功能,所以我正在手动生成SQL查询。

$this->db->query("INSERT IGNORE INTO my_table(lat, lng, date, type)
                        VALUES ('" . $data['lat'] . "', '" . $data['lng'] . "', '" . $data['date'] . "', '" . $data['type'] . "')");

问题: 当字符串中$data['type']包含单引号时,查询失败。如何使这些需要转义的字符自动转义,例如使用活动记录时?


问题答案:

另一种方法是使用查询绑定,该绑定会自动转义所有值:

$sql = "INSERT IGNORE INTO my_table(lat, lng, date, type) VALUES (?,?,?,?);"; 
$this->db->query($sql, array($data['lat'], $data['lng'], $data['date'], $data['type']));


 类似资料:
  • 问题内容: 我使用的是codeigniter,大多数时候都使用活动记录进行查询(这会自动使它们转义),但是由于变量的原因,该查询似乎不太适合它。因此,我需要弄清楚如何手动转义查询。 Codeigniter文档建议以这种方式转义查询: 我的原始查询 我逃脱的查询 但是我在正确使用语法上遇到了麻烦。错误消息是: PHP错误消息:未定义的变量:user_language SQL错误:语法错误…在第1行的

  • 问题内容: 我正在尝试在vb.net中使用sql查询插入数据,如下所示。名称= corp int’l poc = 1 当我尝试插入时,出现错误(“字符串’“之后的未封闭的引号)。当我尝试仅用1个单引号插入名称时,就会发生这种情况。 因此,我添加了一个replace函数,以将2个单引号替换为1个单引号来转义符号。没有错误,但是当我查看数据库时,添加了2个单引号而不是1个。 谁能告诉我如何通过参数化查

  • 问题内容: 我不敢相信我在问这个,但是… 您如何使用SCALA在SPARK SQL中逃逸SQL查询字符串? 我已经厌倦了一切,到处搜寻。我以为apache commons库可以做到,但是没有运气: ”‘“).map(_.getValuesMapAny)).collect().foreach(println); 返回以下内容: topic =’‘’Ulmus_minor _’‘Toledo’‘’^在

  • 我不敢相信我问这个但是... 如何使用Scala在SPARK SQL中转义SQL查询字符串? 我累了所有的东西,到处找。我以为apache commons库可以做到这一点,但运气不好: 返回以下内容: 帮个忙就好了。 j

  • 问题内容: 我有一个本机SQL查询,如下所示: 问题是,Hibernate的解释,,作为参数,并希望我们给值,, 但是我不想让Hibernate这样解释,所以我想逃避冒号。 怎么做 ? 问题答案: 在Hibernate中,转义以开头。但是在Java中,您还必须逃脱另一个。因此,所有内容都需要替换为。最后,您得到:

  • 问题内容: 查询中给出的(下划线)不适用。 范例: 这匹配并带来许多行,除了包含 可能有人请帮助如何在实现这一目标以及在?谢谢。 问题答案: 您是否尝试过转义: 而不只是。