За последние 24 часа нас посетили 16862 программиста и 1702 робота. Сейчас ищут 938 программистов ...

ЗАПИСАТЬ В MYSQL В UTF8

Тема в разделе "Прочие вопросы по PHP", создана пользователем borshov, 6 фев 2009.

  1. borshov

    borshov Активный пользователь

    С нами с:
    6 фев 2009
    Сообщения:
    35
    Симпатии:
    0
    Код (Text):
    1. <form name="searchform" onSubmit="if(document.searchform.search.value==''){alert('<?=$lang[SearchEmpty]?>');return false;}" method="GET" action="<?=$web_path;?>index.php">
    2.      
    3.       <?php
    4.       if(isset($_REQUEST['submit'])) {
    5.       $tagsearch = strip_tags($search);
    6.       $tagsearch = htmlentities($tagsearch);
    7.      
    8.       if(strlen($tagsearch)>3) {
    9.       mysql_query("INSERT INTO `tags` VALUES ('', '$tagsearch','$date')");
    10.       } }
    11.       ?>
    12.      
    13.       <input type="text" name="search" value="<?php echo "$search"; ?>">
    14.             <input type="submit" name="submit" value="<?=$lang[Search]?>">
    15.       <input type="hidden" name="page" value="1">
    16.       <input type="hidden" name="changeurl" value="1">
    17.           </form>
    Я так поинмаю - что эта штука записывает в бд MySQL тэги которые пользователь ввел в форму поиска, но в БД пишет в виде таких вот "???" и прочие знаки (но токо русский язык, с латиницей все норма), соответсвенно из бд берет такие же символы, как сделать чтоб в бд писалось в UTF8. Сама база в Utf8 и кодировка страниц тоже UTF-8.

    Помогите пожалуйста!
     
  2. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
  3. borshov

    borshov Активный пользователь

    С нами с:
    6 фев 2009
    Сообщения:
    35
    Симпатии:
    0
    Дак я и пытаюсь её самую убрать. :(

    Вот здесь приказал писать в ЮТФ
    Код (Text):
    1. $this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS) or die(mysql_error());
    2.   mysql_query("SET NAMES 'utf8';");
    3.        mysql_select_db(DB_NAME, $this->connection) or die(mysql_error());
    База В UTF,
    по запросу например: "Михей" - в базу прописывает мÐ&c
     
  4. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    а читаешь из нее как?
     
  5. borshov

    borshov Активный пользователь

    С нами с:
    6 фев 2009
    Сообщения:
    35
    Симпатии:
    0
    Код (Text):
    1. <?php
    2. include "session.php";
    3. ?>
    4. <link rel="stylesheet" href="<?=$web_path?>css/music.css" media="screen,projection" type="text/css" />
    5. <div align="center">
    6. <div class="tag-box">
    7. <b>Recent Searches:</b>
    8.  
    9. <?php
    10. if($type=="lyrics") {
    11. $type = "lyrics";
    12. } elseif($type=="video") {
    13. $type = "video";
    14. } else {
    15. $type = "mp3";
    16. }
    17.  
    18. $q4 = mysql_query("SELECT * FROM tags ORDER by id DESC LIMIT 25");
    19.  
    20. $i = 1;
    21.  
    22. while($tags = mysql_fetch_array($q4)) {
    23. $tag = $tags[tag];
    24. $tag = str_replace(" ","-",$tag);
    25.  
    26. if(($type=="lyrics")||($type=="video")) {
    27. $tag = str_replace("-","+",$tag);
    28. }
    29.  
    30. $tag_name = $tags[tag];
    31. $tag_name = ucwords($tag_name);
    32.  
    33. $count = $i++;
    34.  
    35. if(($count==1) || ($count==5) || ($count==10) || ($count==15) || ($count==20)) {
    36. $class = "style1";
    37. } elseif(($count==3) || ($count==9) || ($count==14) || ($count==16) || ($count==18)) {
    38. $class = "style2";
    39. } elseif(($count==2) || ($count==7) || ($count==12) || ($count==17) || ($count==19)) {
    40. $class = "style3";
    41. } elseif(($count==4) || ($count==11) || ($count==13) || ($count==6) || ($count==15)) {
    42. $class = "style4";
    43. }
    44. ?>
    вот так выводит на страницу!

    дак он в базу уже коряво пишет? соответственно читает так же, разве нет?
     
  6. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    при чтении попробуй после открытия мускуль-коннекции также выполнить mysql_query("SET NAMES 'utf8';");
     
  7. Andrey K.

    Andrey K. Активный пользователь

    С нами с:
    22 май 2007
    Сообщения:
    83
    Симпатии:
    0
    Юзаю вот такой вот конфиг:

    config.inc
    Код (Text):
    1.  
    2. /*
    3. * The basic functions for work with a database
    4. */
    5.  
    6. global $work;   // при тестировании - false, при работе - true
    7. $work=false;   // при тестировании - false, при работе - true
    8.  
    9. // *** Conclusion of messages during the test and during work
    10. ini_set ('display_errors', 1); // при тестировани - 1, при работе - 0
    11. ini_set ('display_startup_errors', 1); // при тестировани - 1, при работе - 0
    12. ini_set ('log_errors', 1); // всегда 1. Читайте логи Апача, там будут копиться ПХП-ошибки!!!
    13. error_reporting(E_ALL);
    14.  
    15. if(version_compare(phpversion(), "5.0.0", ">")==1)
    16. {
    17.     ini_set("error_reporting", E_ALL | E_STRICT);
    18. }
    19. else
    20. {
    21.     ini_set("error_reporting", E_ALL);
    22. }
    23. // ***
    24.  
    25. function open_database($work)
    26. {
    27.     if($work==false)   // test mode
    28.     {
    29.         $link=mysql_pconnect('localhost', 'login', 'pass') or die ("Could not connect to MySQL (1); ".mysql_errno()." :  ".mysql_error()." \n ");
    30.         mysql_select_db('db', $link) or die ("Could not select database  (2); ".mysql_errno()." :  ".mysql_error()." \n ");
    31.     }
    32.     else   // work mode
    33.     {
    34.         $link=mysql_pconnect('localhost', 'login', 'pass') or die ("Could not connect to MySQL (1);");
    35.         mysql_select_db('db', $link) or die ("Could not select database  (2);");
    36.     }
    37.  
    38.     //////////// ** We establish the coding for correct display in a database and at the client
    39.     mysql_query("set character_set_client='cp1251'",$link);
    40.     mysql_query("set character_set_results='cp1251'",$link);
    41.     mysql_query("set collation_connection='cp1251_general_ci'",$link);
    42.     //////////// **
    43.  
    44.     return $link;
    45. }
    46.  
    47. function close_database($link)
    48. {
    49.     mysql_close($link);
    50. }
    там есть "выравнивание" кодировки