【发布时间】:2011-11-07 08:27:43
【问题描述】:
当我构建的 SQL 查询在其中一个搜索值中包含括号时,我没有得到预期的结果。但是,如果我直接在我的数据库上运行查询,我会返回预期的结果。
此外,如果我的搜索不包含括号,它将正确返回预期结果。
CodeIgniter 模型函数:
function get_submodels($params)
{
$sql = "SELECT DISTINCT(`a`.`submodel`), `a`.`model_id` FROM `models` AS `a`"
. "LEFT JOIN `manufacturers` AS `b` ON `a`.`manufacturer` = `b`.`manufacturer_id`"
. "WHERE `a`.`year` = ? AND `b`.`manufacturer` = ? AND `a`.`model` = ?"
. "ORDER BY `a`.`submodel` ASC;";
$query = $this->db->query($sql, $params);
return $query->result();
}
一个有效的查询示例:
"... WHERE `a`.`year` = '2007' AND `b`.`manufacturer` = 'CHEVROLET' AND `a`.`model` = 'MONTE CARLO'"
一个无效查询的例子:
"... WHERE `a`.`year` = '2007' AND `b`.`manufacturer` = 'MERCEDES BENZ' AND `a`.`model` = 'CLK350 (W209)'"
我使用了 $this->db->last_query() 并且查询格式正确。即使复制最后一个没有结果的查询并直接对数据库运行它也会得到预期的结果。
【问题讨论】:
-
他们可能不是问题,但为什么要使用
\n? -
实际的错误输出是什么?
-
@Pekka 新行不是必需的,而是 phpMyAdmin 如何从查询运行中自动生成 php 字符串。
-
@J0HN 没有错误,而是当查询在其中一个搜索值中有括号时返回 0 个结果。如果没有括号,查询将返回结果。所以,我很想知道为什么会通过 Codeigniter 发生这种情况。
标签: php mysql sql codeigniter