Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapis tekstu do bazy
borpaw
post
Post #1





Grupa: Zarejestrowani
Postów: 439
Pomógł: 0
Dołączył: 3.06.2010

Ostrzeżenie: (50%)
XXX--


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?
Go to the top of the page
+Quote Post
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
borpaw
post
Post #3





Grupa: Zarejestrowani
Postów: 439
Pomógł: 0
Dołączył: 3.06.2010

Ostrzeżenie: (50%)
XXX--


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?
Go to the top of the page
+Quote Post
darko
post
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
borpaw
post
Post #5





Grupa: Zarejestrowani
Postów: 439
Pomógł: 0
Dołączył: 3.06.2010

Ostrzeżenie: (50%)
XXX--


ok, dzieki tak wystarczy
Jak by ktoś jednak miał podobny przypadek z działaniem PDO to proszę napisać
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:18