Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Polskie znaki - dodawanie do MySQL @ tutorial
Forum PHP.pl > Forum > PHP
SubZero.
Witam,

Dopiero zaczynam PHP, zacząłem od tego tutoriala:

http://www.phazm.com/notes/easy-as-pie/eas...with-databases/

Wszystko ładnie chodzi, tylko, że jak dodaje coś z polskimi znakami to mi wychodzą krzaczki zamiast polskich znaków.

Kod
     <?php
     $user="username";
     $password="password";
     $database="database";
     $connection=mysql_connect('localhost',$user,$password);
     @mysql_select_db($database) or die( "Unable to select database");
    
     if ($_REQUEST['quote'] != "") {
         if($_REQUEST['author'] != "") {
             $author = $_REQUEST['author'];
         } else {
             $author = "Anonymous";
         }
         $quote = $_REQUEST['quote'];
        
         $query="INSERT INTO `quotes` (`quote`,`author`) values ('" . mysql_real_escape_string($quote) . "','" . mysql_real_escape_string($author) . "')";
        
         $result=mysql_query($query) or die(mysql_error());
         echo("inserted quote: " . htmlentities($quote) . " by " . htmlentities($author) . " into database");
     }  else {
         echo("<p>Please enter a quote and author</p>");
     }
     ?>
     <form action="" method="post">
     <fieldset>
     <legend>Add a Quote</legend>
     <label for="quote">Quote:</label>
     <input type="text" name="quote" id="quote" maxlength="255" />
     <label for="author">Author:</label>
     <input type="text" name="author" id="author" maxlength="40" />
     <input type="submit" value="Add Quote" />
     </fieldset>
     </form>
    
     mysql_close($connection);
     ?>

Co ciekawe, jak dodaje do bazy MySQL przez phpMyAdmin z polskimi znakami, to wszystko jest OK.
extreme-dh
Jakiego kodowania używasz w bazie a jakiego na stronie?
SubZero.
W bazie jest "utf8_unicode_ci", na stronie "utf-8".

Teraz nawet jak wyświetlam na stronie wszystko co jest w bazie, to też są krzaczki zamiast polskich znaków, nawet jeśli dodam przez phpMyAdmin i w bazie, widzę, że jest normalnie z polskimi znakami, to na stronie są jednak krzaczki.

Zauważyłem również, że jak po połączeniu z bazą dodam:
Kod
mysql_query("SET NAMES 'UTF8'");

To mi się wyświetlają inne krzaki zamiast polskich znaków...
jarmiar
koduj dane wprowadzane do bazy w base64 i dekoduj przy pobieraniu rekordów. dzięki temu pozbędziesz się problemów z polskimi znakami
SubZero.
To jedyne rozwiązanie? Chciałbym mieć jednak w bazie polskie znaki a nie szyfrowane w base64...
jarmiar
ja tak zawsze robie i już nie narzekam na wszelkie problemy z polskimi znakami
dadexix
może iconv" title="Zobacz w manualu PHP" target="_manual Ci pomoże, php nie obsluguje poprawniw unicode
wlamywacz
Cytat(jarmiar @ 15.08.2008, 18:08:02 ) *
ja tak zawsze robie i już nie narzekam na wszelkie problemy z polskimi znakami

Ciekawe jak wyszukiwarkę zrobisz smile.gif
akurczyk
Unicode będzie w PHP6
Zaczekaj:D
krowal
nagłówek na stronie:
  1. <meta http-equiv="content-type" content="text/html; charset=utf-8" />

zapytanie po połączeniu z bazą:
  1. <?php
  2. mysql_query("SET NAMES 'UTF8'");
  3. ?>

+ zmień ustawienie kodowania w bazie na utf8_general_ci

i będzie dobrze, nie ma bata smile.gif
.radex
Cytat(jarmiar @ 15.08.2008, 20:08:02 ) *
ja tak zawsze robie i już nie narzekam na wszelkie problemy z polskimi znakami


Rozwiązanie proste i sprytne, ale mało wydajne. Lepiej to zrobić "normalnie".
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.