2011-03-30 50 views
0

我很新的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,但它不起作用。任何人都可以请帮我在这里?笨,URI->段,str_len

回答

0

你试过var_dump($value)刚才看到它所包含的内容?

此外,从$this->db->last_query();结果可能是有用的,看看有什么你实际上quering你的数据库。我不明白为什么你不能在你的数据库中加入perenthesis。

0

Im相当肯定都UTF8和latin1的都是精品。 你可以发布你的控制器代码吗?

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

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

但我只是尝试这样做,我的价值观与HTML实体就出来了:

input_value = html_entity_decode($input_value); 
part(2),而不是..

你可以用这样的解决这个问题