CKEditor zapisywanie i pobieranie danych z bazy

Witam ,wrzuciłem na stronkę CKEditor .Zapisuję do bazy jakiś tekst z wykorzystaniem php :


  $dbConn = mysql_connect('localhost' , 'root', 'haslo')

	or trigger_error(mysql_error(), E_USER_ERROR);

	mysql_select_db('inz', $dbConn);

        $sql =  "UPDATE articles SET content=  '" .mysql_real_escape_string($_POST['data']) . "' WHERE id=1;";

        $queryResource = mysql_query($sql,$dbConn) or die(mysql_error());




Artykuł jest zapisywany do bazy i w podobny sposób pobierany. Wszystko by się zgadzało gdyby nie to że w bazie polskie znaki są przechowywane w postaci: jakaÅ› treść takiej. Co ciekawe w przeglądarce po pobraniu z bazy wszystko wyświetla się jak trzeba tj. polskie znaki jak i formatowanie.

Niestety muszę zrobić wyszukiwanie w tym artykule więc w bazie musiałbym przechowywać polskie znaki.

Użyłem więc

Update:


$command = Yii::app()->db->createCommand();

      $command->update('articles', array(

    'content'=>mysql_real_escape_string($_POST['data']),

     ), 'id=:id', array(':id'=>1));

Read:


$row = Yii::app()->db->createCommand(array(

    'select' => array('content'),

    'from' => 'articles',

    'where' => 'id=:id',

    'params' => array(':id'=>1),

))->queryRow();

Przy tym sposobie do bazy zapisuje polskie znaki lecz niestety w CKEdytorze przy wczytaniu z bazy pokazuje bez żadnego formatowania.

Jak wpiszę " Jakaś treść" => zapisuje do bazy=>


<h1><span style=\"color:#8B4513\"><span style=\"font-size:14px\"><span style=\"font-family:courier new,courier,monospace\"><span style=\"background-color:#008000\">Jakaś treść</span></span></span></span></h1>\r\n

Natomiast przy pobieraniu z bazy do CKEditora obojętnie czy użyję 1 czy 2 sposobu wyświetla się niesformatowany napis i pod nim \r\n . (W przypadku pobierania zwykłego - bez klasy Yii nie wyświetla polskich znaków a zamiast nich => ? )

Czemu nie korzystasz z mechanizmów Yii i ActiveRecord, tylko tworzysz własne połączenia i piszesz zapytania z palca? Co rozumiesz przez "w bazie polskie znaki są przechowywane w postaci: jakaÅ› treść takiej"? Skoro na stronie wyświetlają się OK, to znaczy że w bazie znaki są zapisane poprawnie.

Nie możesz korzystać z mysql_real_escape_string przy przekazywaniu wartości do zapytania jako parametrów, bo wtedy będą escapeowane 2 razy, dlatego masz nadmiarowe backslashe.

w postaci: jakaÅ› treść czyli tak jak jest tu napisane są w bazie - brak polskich znaków , są tylko krzaczki , leczy gdy pobieram z bazy wyświetla normalnie, gdy nie używam mechanizmów Yii.

Rzeczywiście problemem było użycie funkcji mysql_real_escape_string , teraz zapisuje normalnie. Dzięki ;)

A jak odczytujesz dane z bazy? Problem może być w narzędziu, którym odczytujesz te dane - jeśli jego kodowanie jest ustawione na inne niż te wykorzystywane przez aplikację, to mogą wyświetlać się krzaki. Musisz ujednolicić kodowania znaków.

Jak w ten sposób odczytywałem do rozpoznawał krzaczki w bazie i na stronie normalnie wyświetlał. Tak czy inaczej użyłem klas z Yii i już działa ;)