2011-03-30 67 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),而不是..

你可以用這樣的解決這個問題