Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL] Polskie znaki c.d - kolejne starcie
thomson89
post
Post #1





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Witam!

Ostatnio zmagałem się z polskimi znakami w bazie danych mysql. I o dziwo poradziłem sobie z tym problemem. Ale jak widać na krótko.

Dodałem wtedy kilka wierszy polskich znaków: wiersze wyświetlały się prawidłowo - żadne znaki nie zostały zamienione. Również przy pobieraniu wierszy przez parser php nic się nie działo.

Potem napisałem funkcję dodającą teksty do tejze tabeli: kolejny test pozytywny. Wszystko ładowało się ok.

Dopiero teraz, gdy zrobiłem to na przeglądarce mozilli w innym kraju (tu: inny komputer) - wszedłem na mojego ala cms i dodałem kilka wierszy. Niestety znowu myql zamienia polskie znaczki na dziwne znaczki. Np.:±¶ææ¶¶¶¶¶¶¶ñó󳿼¼¼êê±¶¶.

Jak zrobić, aby przywórcić stan bazy sprzed kilku dni??

Pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
beka
post
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 2.08.2009

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


Witam, piszę tu by nie zakładać kolejnego tematu o... no właśnie (IMG:style_emoticons/default/worriedsmiley.gif)
Testuję mój skrypt na localhoście (ubuntu 9.04, najnowszy mysql, php, phpmyadmin poinstalowane) i na serwerze w sieci (byethost). Na obu są piękne krzaki i krzewy (IMG:style_emoticons/default/smile.gif)
Teraz tak :
- przeglądałem wszystkie możliwe tematy, porady... cokolwiek... i nic
Czasami jak poustawiam to treść do bazy danych dodawana jest bez krzaków ręcznie (w konsoli - localhost), albo przez PMA (na localu i serwerze), ale jeszcze nigdy nie dodało dobrze przez skrypt. Oczywiście próbowałem różnych konfiguracji, nawet prostych - wszystko jednakowo, ale bez efektów.
Męczyłbym się dalej, ale już ręce opadają po tych paru godzinach spędzonych przy bazie danych i jednym, prostym skrypcie...

Skrypt :
  1. <?php
  2. function insert_db($title, $author, $edition, $format, $year){
  3. $sql = mysql_connect("---host---", "---user---", "---haslo---") or die('Nie mozna nawiazac polaczenia z baza danych.'.mysql_error());
  4. mysql_select_db("----bazadanych----") or die('Nie mozna wybrac bazy danych.'.mysql_error()); mysql_query("SET NAMES 'utf8'");
  5. $title = stripslashes($title);
  6. $author = stripslashes($author);
  7. $edition = stripslashes($edition);
  8. $format = stripslashes($format);
  9. $year = stripslashes($year);
  10. }
  11.  
  12. $title = mysql_real_escape_string($title);
  13. $author = mysql_real_escape_string($author);
  14. $edition = mysql_real_escape_string($edition);
  15. $format = mysql_real_escape_string($format);
  16. $year = mysql_real_escape_string($year);
  17.  
  18. $query = "INSERT INTO `plyty` VALUES (NULL, '$title', '$author', '$edition', '$format', '$year')";
  19. $result = mysql_query($query) or die('Nie mozna wykonac zapytania.'.mysql_error());
  20. echo 'Dane zostały wstawione pomyślnie.<br />';
  21. $query = 'SELECT * FROM `plyty`';
  22. $result = mysql_query($query) or die('Nie mozna wykonac zapytania.'.mysql_error());
  23. echo 'Dane zostały pobrane pomyślnie.<br />';
  24. echo '<table border="1">';
  25. echo '<tr><th>Tytuł</th><th>Autor</th><th>Wydanie</th><th>Format</th><th>Rok</th></tr>';
  26. while ($result_row = mysql_fetch_array($result)) {
  27. echo '<tr><td>';
  28. echo $result_row['tytul'] .'</td><td>';
  29. echo $result_row['autor'] .'</td><td>';
  30. echo $result_row['wydanie'] .'</td><td>';
  31. echo $result_row['format'] .'</td><td>';
  32. echo $result_row['rok'] .'</td></tr>';
  33. }
  34. echo '</table>';
  35. }
  36. ?>
  37. <html>
  38. <head>
  39. <title>Wstawianie danych</title>
  40. </head>
  41. <body>
  42. <?php
  43. $title = htmlentities($_GET['tytul']);
  44. $author = htmlentities($_GET['autor']);
  45. $edition = htmlentities($_GET['wydanie']);
  46. $format = htmlentities($_GET['format']);
  47. $year = htmlentities($_GET['rok']);
  48. if (($title != NULL ) && ($author != NULL ) && ($edition != NULL ) && ($format != NULL ) && ($year != NULL)){
  49. insert_db($title,$author,$edition,$format,$year);
  50. }
  51. else {
  52. <h1>Wprowadź nową pozycję:</h1>
  53. <form action="'.$_SERVER['PHP_SELF'].'" method="GET">
  54. <table><tr>
  55. <td><label>Tytuł:<input type="text" name="tytul" id="tytul" /></label></td>
  56. <td><label>Autor:<input type="text" name="autor" id="autor" /></label></td>
  57. <td><label>Wydanie:<input type="text" name="wydanie" id="wydanie" /></label></td>
  58. <td><label>Format:<input type="text" name="format" id="format" /></label></td>
  59. <td><label>Rok:<input type="text" name="rok" id="rok" /></label></td><br />
  60. <input type="submit" value="Zatwierdź" />
  61. </tr></table>
  62. </form>';
  63. }
  64. ?>
  65. </body>
  66. </html>

<< host itd. dobrze wpisuję, bo samo dodawanie działa (IMG:style_emoticons/default/winksmiley.jpg) ale krzaki....

przez phpMyAdmin ustawiam wszystko - baza danych (utf8_polish_ci / próbowałem też utf8_unicode_ci , utf8_general_ci, latin2) to samo z tabelą i zawartością.
Efekt? Dodawanie przez phpMyAdmin działa - w samej bazie nie ma krzaczków - ale na stronie już są (strona kodowana w utf-8 ).

przez konsolę (localhost) także próbowałem już różnych ustawień... i tutaj też 0 efektów... jedynie to ręcznę wpisywanie w konsoli insert into... działa...

(IMG:style_emoticons/default/sadsmiley02.gif) pomocy
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 11:49