За последние 24 часа нас посетили 16472 программиста и 1551 робот. Сейчас ищут 2088 программистов ...

Кодировка

Тема в разделе "MySQL", создана пользователем Leamas, 20 июл 2008.

  1. Leamas

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

    С нами с:
    18 июл 2008
    Сообщения:
    3
    Симпатии:
    0
    в mysql создаю таблицу и заполняю ее:
    [sql]
    CREATE TABLE employees(id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY, surname VARCHAR(20), address VARCHAR(50), telephone INT(10), d_o_b DATE, accepted DATE, job_title VARCHAR(20));
    INSERT INTO employees VALUE(NULL, 'Анюткина', 'Москва, Москворкцкая набережная', 7886580, '1981-07-21', '2008-06-15', 'Портной-лаборант');
    [/sql]
    на заполнение отвечает "Query OK, 1 row affected" , но заполняет. Если написать select * from employees, то выдает нормальную таблицу с нормальными русскими буквами. (А почему тогда affected?)
    А когда пытаюсь этот запрос в PHP написать:

    PHP:
    1. <html>
    2. <head>
    3.         <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    4.         <meta name="generator"  />
    5.         <title>АТЕЛЬЕ</title>
    6.     </head>
    7. <body  bgcolor="#666fff">
    8.  
    9. <?php
    10.      mysql_connect("localhost", "root", "******");
    11.      mysql_select_db("studio");
    12.     mysql_query("SET NAMES cp1251;");
    13.     mysql_query("SET CHARACTER SET 'cp1251';");
    14.  
    15.  
    16.      $ath = mysql_query("select * from employees;");
    17. if($ath)
    18. {
    19.   $author = mysql_fetch_array($ath);
    20.   echo "Фамилия = ".$author['surname']."<br>";
    21.   echo "Адрес = ".$author['address']."<br>";
    22.   echo "Телефон = ".$author['telephone']."<br>";
    23.   echo "Дата рождения = ".$author['d_o_b']."<br>";
    24.   echo "Дата приема = ".$author['accepted']."<br>";
    25.   echo "Должность = ".$author['job_title']."<br>";
    26.   }
    27. else
    28. {
    29.   echo "<p><b>Error: ".mysql_error()."</b></p>";
    30.   exit();
    31. }
    32. ?>
    33.  
    34. </body>
    35.  
    36. </html>
    то выдает вот это:
    Фамилия = ?­???­
    Адрес = ?®??? , ?®???®???? ? ­ ????¦­ ?
    Телефон = 7886580
    Дата рождения = 1981-07-21
    Дата приема = 2008-06-15
    Должность = ?®??­®©-« ?®? ­?
    Можно как-нибудь сделать, чтоб он русскими буквами писал?
    В базе кодировка latin1. Если менять ее в mysql, то и в базе не по русски начинает писать, а если менять в PHP, то ничего путного не происходит :(
     
  2. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Leamas

    приведенный код должен выдавать ошибку в 16 строке.

    в строках 10-13 после запросов добавь or die(mysql_error());
     
  3. Johnatan

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

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
  4. Leamas

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

    С нами с:
    18 июл 2008
    Сообщения:
    3
    Симпатии:
    0
    не получается ввести команду:(. Ввожу:
    mysqldump -uroot -p123 studio --allow-keywords --create-options --complete-insert --default-character-set=latin1 --add-drop-table > dump.sql;
    На что он пишет, что ошибка в синтаксисе(