【发布时间】:2012-05-03 16:02:26
【问题描述】:
我正在使用 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)”附近
【问题讨论】:
-
您要在查询中插入或选择某些内容吗?
-
选择。 INSERT 来自 Codeigniter 文档。
-
更新了我的答案,希望它对你有用:]
-
代码,请向我们提供 Codeigniter 文档的链接。我找到了this,但在那里看不到你的代码。
-
@JerminBazazian 这就是链接,它位于名为 Escaping Queries 的部分(第 2 到最后部分)下。
标签: php mysql sql codeigniter codeigniter-2