Codeigniter,uri-> segment,str_len

时间:2011-03-30 06:08:14

标签: codeigniter

我是php和mysql的新手。我试图将值“part(2)”传递给我的代码点火器控制器。 “part(2)”是我数据库中数据值的名称之一。将其传递给uri段后,我使用命令$value = str_replace("%20", " ", $this->uri->segment(5));将其解压缩。现在,当我使用变量$ value搜索我的数据库时,它不会显示结果。我认为问题在于使用“()”。我想知道它是否与数据类型utl8 vs latin1有关。我的数据库配置为使用latin1_general_ci。我已经尝试将数据库字段类型更改为utl8_general_ci,但它不起作用。有人可以帮帮我吗?。

2 个答案:

答案 0 :(得分:0)

您是否尝试var_dump($value)只看它包含的内容?

此外,$this->db->last_query();的结果可能有助于查看您实际查询数据库的内容。我没有看到为什么你不能在你的数据库中放置perenthesis的原因。

答案 1 :(得分:0)

我很确定utf8和latin1都很好。 你能发布你的控制器代码吗?

首先,如果你传递了uri中的值,那么()中允许的uri字符中是否有application/config/config.php

这样的事情: $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-()';

但我刚试过这个,我的价值观来自html实体:part(2)而不是..

您可以通过以下方式解决此问题:

input_value = html_entity_decode($input_value);