Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapis tekstu do bazy
Forum PHP.pl > Forum > PHP
borpaw
Mam strone na zend framework, i pojawił się problem, jak chcę zapisać tekst z pola textarea do bazy, który ma więcej niż 280 znaków to strona się zawiesza poniżej 280 wszystko działa dobrze. Co może być powodem?
darko
Ograniczenie długości typu pola do 280 znaków. Zedytuj strukturę tabeli maksymalną długość pola lub ucinaj dane przychodzące z formularza do 280 znaków.
borpaw
długość pola w bazie jest właściwa, wyczytałem, że to może być problem z PDO zenda ale konkretów nie znalazłem, nie miał ktoś problemów z zapisem długiego tekstu przez PDO zenda? W tej chwili mam tak:

1) przez pdo, nie działa
  1. $db = Zend_Db_Table::getDefaultAdapter();
  2. $select = $db->query("SET CHARACTER SET utf8");
  3. $select = $db->query("SET NAMES `utf8` COLLATE `utf8_polish_ci`");
  4.  
  5. $query = $db->query("select id_worker from message where id_worker = ".$id_worker);
  6.  
  7. if( $query->rowCount() == 0 )
  8. {
  9. $db->query("INSERT INTO message ( id_user, id_worker, msgPL ) VALUES (".$id_user.", ".$id_worker.", CONVERT ('" . $msg . "' USING utf8 ) )" );
  10. }else{
  11. $db->query("UPDATE message SET msgPL = '".$msg."' where id_worker = ". $id_worker);
  12. }


Oraz w tym samym miejscu inaczej zrobione, działa

  1. $connection = @mysql_pconnect('localhost', 'root' , 'vertrigo' ) or die('Brak po31czenia z serwerem MySQL.<br >B31d: '.mysql_error());
  2. mysql_query("SET NAMES 'utf8'");
  3. mysql_query("SET CHARACTER_SET 'utf8'");
  4. $db = @mysql_select_db('baza', $connection) or die('Nie mog-Ö po+é-uczy-ç si-Ö z baz-u danych<br >B+é-ud: '.mysql_error());
  5.  
  6. $query = mysql_query("select id_worker from message where id_worker = ".$id_worker);
  7.  
  8. if( mysql_num_rows($query) == 0 )
  9. {
  10. $query= mysql_query("INSERT INTO message ( id_user, id_worker, msgPL )
  11. VALUES (".$id_user.", ".$id_worker.", CONVERT ('" . $msg . "' USING utf8 ) )", $connection );
  12. }else{
  13. $query= mysql_query("UPDATE message SET msgPL = '".$msg."' where id_worker = ". $id_worker, $connection);
  14. }


Moge mieć to drugie rozwiązanie ale nie wiem jak pobrać server, user, pass z pliku application ini tak żeby ustawienia dla bazy były w jednym miejscu, może to mi ktoś podpowie?
darko
Ciekawa sprawa. Zobacz tutaj, w jaki sposób można dobrać się do ustawień konfiguracyjnych: http://framework.zend.com/manual/en/zend.c...apters.ini.html w ostateczności skopiuj fragment kodu z klasy Zend_Config_Ini pobierajacy ustawienia.
Te dwie linie kodu przy można zamienić na odpowiednie ustawienie w configu, zdaje się, że na:
database.adapter = pdo_mysql
database.utf8 = true
borpaw
ok, dzieki tak wystarczy
Jak by ktoś jednak miał podobny przypadek z działaniem PDO to proszę napisać
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.