Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Kohana]Simple Modeler - polskie znaki
Forum PHP.pl > Forum > PHP > Frameworki
henio
Napisałem kontroler i model odpowiedzialne za dodanie rekordu do bazy danych. Kiedy wpisuje np "Testy" to wszystko we właściwy sposób się dodaje. Natomiast kiedy wpiszę np "Teścik" Wówczas pojawia się:
Kod
Wystąpił błąd SQL: Data too long for column 'tresc' at row 1 - INSERT INTO `heniek_shoutbox-adm` (`id_uzytkownik`, `data`, `tresc`) VALUES ('1', '2009-07-11 11:50:55', 'TeÅ�cik')


Kontroler:
  1. <?php
  2. class Shoutbox_Controller extends Glowna_Controller {
  3.  
  4.    public function __construct()
  5.    {
  6.    parent::__construct();
  7.    $this-> session= Session:: instance();
  8.    }
  9.  
  10.    public function index()
  11.    {
  12.        if(Simple_Auth::instance() -> logged_in())
  13.        {
  14.        $post = new Validation($_POST);
  15.        $post -> pre_filter('trim')
  16.              -> pre_filter('htmlentities')
  17.              -> add_rules('tresc', 'required', 'length[3, 200]');
  18.            if($post -> validate())
  19.            {
  20.            $username = Simple_Auth::instance()->get_user();    
  21.            $shoutbox = Simple_Modeler::factory('Admin_Shoutbox_Dodaj');
  22.            $shoutbox -> id_uzytkownik=$username->id;
  23.            $shoutbox -> data=date(&#092;"Y-m-d H:i:s\");
  24.            $shoutbox -> tresc=$post['tresc'];
  25.            $shoutbox -> save();
  26.            Session :: set_flash('shoutbox_error', Kohana :: lang('shoutbox.ok'));
  27.            }
  28.            else
  29.            {
  30.            Session :: set_flash('shoutbox_error', Kohana :: lang('shoutbox.error'));
  31.            }
  32.        }
  33.    url :: redirect('adm/glowna');
  34.    }
  35. }
  36. ?>


Model:
  1. <?php
  2. class Admin_Shoutbox_Dodaj_Model  extends Simple_Modeler {
  3.  
  4. // Database table name
  5.    protected $table_name = 'shoutbox-adm';
  6.  
  7.    protected $auto_fields = FALSE;
  8.  
  9.    protected $data = array('id_uzytkownik' => '',
  10.                            'data' => '',
  11.                            'tresc' => '');
  12. }
  13. ?>

Dodam, że metoda porównywania napisów to: utf8_unicode_ci
vokiel
Próbowałeś wpisać 'wieloznakowy ciag znakow bez polskich ogonkow' ? Czy takie coś przechodzi? Bo Testy - 5 znaków, a Teścik - 6 (z uwzględnieniem 2 bitów na ś nawet 7;) )

Co do kodowania bazy, to jeśli ma być tam tekst z polskimi znakami to proponuję utf8_polish_ci, lub utf8_general_ci
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.