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

SQL查询转义+ Codeigniter

龙洛城
2023-03-14
问题内容

我使用的是codeigniter,大多数时候都使用活动记录进行查询(这会自动使它们转义),但是由于变量的原因,该查询似乎不太适合它。因此,我需要弄清楚如何手动转义查询。

Codeigniter文档建议以这种方式转义查询:

$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";

我的原始查询

$sql = "SELECT * FROM (`user_language`) WHERE `user_id` = '{$id}'";

我逃脱的查询

$sql = "SELECT * FROM (`user_language`) WHERE `user_id` = '{$id}' VALUES(".$this->db->escape($user_language).")";

但是我在正确使用语法上遇到了麻烦。错误消息是:

  • PHP错误消息:未定义的变量:user_language
  • SQL错误:语法错误…在第1行的“ VALUES(NULL)”附近

问题答案:
$sql = "SELECT * FROM `user_language` WHERE `user_id` = " . $this->db->escape($id);

如果您要选择$ id给出的用户语言,则应该采用这种方式。

处理数字的替代方法是:

$sql = "SELECT * FROM `user_language` WHERE `user_id` = " . (int)$id;

codeigniter还支持将准备好的语句作为“查询绑定”:

使用绑定的第二个好处是,这些值会自动转义,从而产生更安全的查询。您不必记住手动转义数据。引擎会自动为您完成。



 类似资料:
  • 问题内容: 我正在使用CodeIgniter将一些数据插入MySQL表中。因为我正在使用并且不想编辑活动记录类以启用此功能,所以我正在手动生成SQL查询。 问题: 当字符串中包含单引号时,查询失败。如何使这些需要转义的字符自动转义,例如使用活动记录时? 问题答案: 另一种方法是使用查询绑定,该绑定会自动转义所有值:

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

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

  • 问题内容: 我在表上有这些数据(使用SQL Server 2005): 我想将其转换为: 现在最困难的部分是:假设我没有其他数据字段指定哪个记录是早餐,午餐或晚餐。我想将它们与最短的开始时间相关联,即,开始时间越短将是早餐,其次就越是午餐,晚餐就越高(假设所有三个(并且只有三个)记录总是被填充)。 有任何想法吗? 问题答案:

  • 1. 简介 分析云作为企业进行全域用户行为数据分析的数据中台,需要满足企业不同业务角色的各类差异化分析需求。 其中,对于企业深度结合业务模式的定制化需求,分析云平台提供了“自定义SQL查询”的功能,支持业务人员自行编辑复杂的 SQL 查询语言,实现对平台数据仓库中最底层的细粒度用户行为数据进行分析操作,以获取当前分析云平台既有数据模型无法覆盖的个性化分析需求的结果。 2. 使用说明 当前 sql

  • 问题内容: 我想将以下SQL查询转换为Elasticsearch之一。谁能帮上忙 我尝试了以下方法: 但不确定我是否做对了,因为它无法验证结果。似乎要在聚合内添加查询。 问题答案: 假设您使用Elasticsearch 2.x,则有可能在Elasticsearch中 具有 -semantics。我不知道2.0之前的可能性。 您可以使用新的Pipeline Aggregation Bucket Se