我正在使用codeigniter而我正在执行此查询
SELECT c.id AS id, c.name AS name, c.img_add AS img, c.downloads as down, c.tag as tag, c.date as date,c.views as view FROM core c WHERE c.name = 'Ganesha (2)' ORDER BY c.downloads DESC
查询在模型中使用,并且不返回任何数据,而在Heidi SQL中执行相同的查询时,会返回适当的数据。
我不知道天气这是一个查询问题,codeigniter问题还是php的,所以我发帖给所有人。
这是我在codeigniter模型中编写的代码。这可能有助于回答。
public function getFolderDetail($folder) {
$sql = "SELECT c.id AS `id`, c.name AS `name`, c.img_add AS `img`, c.downloads as `down`, c.tag as `tag`, c.date as `date`,c.views as `view` FROM core c
WHERE c.name = ?
ORDER BY c.downloads DESC";
$params = array($folder);
return $query = $this->db->query($sql,$params);
}
答案 0 :(得分:1)
我怀疑可能是保留字,可能需要tick
个标记。我会从你的
`name`, `date` and `view` columns...
tick是键盘上#1左侧的键,而不是单引号
可能保留的每个部分都需要刻度标记......例如
c.`name` as `name` (same with others)
它适用于
的where子句where c.`name` = 'something'
您是否遇到了无效的功能?
通过在字符串中发送“Alexa(2)”,可能会将其解释为名为“Alexa”的函数,并且它传递参数2,因此Alexa不是真正的函数。你可以尝试不用parens作为价值吗?
答案 1 :(得分:0)
尝试逃避保留字“date”
SELECT `c`.`date` as `date` etc...
答案 2 :(得分:0)
我遇到了问题,实际上Ganesh (2)
文件夹中的值为Ganesha (2)
,这是值的网址格式,因为我将此值作为网址发送。
我做了这个
public function getFolderDetail($folder) {
$folder = str_replace(')',')',$folder);
$folder = str_replace('(','(',$folder);
//echo $folder = str_replace('(','\(',$folder);
$sql = "SELECT c.id AS `id`, c.name AS `name`, c.img_add AS `img`, c.downloads as `down`, c.tag as `tag`, c.date as `date`,c.views as `view` FROM core c
WHERE c.name = ?
ORDER BY c.downloads DESC";
$params = array($folder);
return $query = $this->db->query($sql,$params);
}
现在代码工作正常。