Codeigniter, uri-> сегмент, str_len - PullRequest
0 голосов
/ 30 марта 2011

Я очень новичок в 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 голосов
/ 31 марта 2011

Я уверен, что с 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);
0 голосов
/ 30 марта 2011

Вы пытались var_dump($value) просто посмотреть, что в нем содержится?

Кроме того, результат из $this->db->last_query(); может быть полезен для просмотра того, для чего вы на самом деле запрашиваете свою базу данных. Я не вижу причины, по которой вы не можете поместить perenthesis в вашу базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...