MySQL и PDO: два языка в одной таблице с использованием сортировки UTF-8 - PullRequest
0 голосов
/ 31 октября 2011

Рассмотрим таблицу с тремя столбцами id, name и bgname, где bgname является кириллическим эквивалентом name. Таблица создана с сопоставлением UTF-8.После использования следующего:

<?php

    $sql = 'SELECT bgname FROM categories';
    function getZapisi($sql,$dbh) {
        foreach ($dbh->query($sql) as $row) {
            print $row['bgname'] . "<br/>";
        }
}
try {
    $dbh = new PDO("mysql:host=localhost;dbname=test", 'root', 'pass');
    /*** echo a message saying we have connected ***/
    getZapisi($sql,$dbh);
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }

?>

я получаю ???из запроса независимо от того, использую ли я сопоставление cp1251 или utf-8 для столбца bgname.Заранее спасибо

Ответы [ 3 ]

1 голос
/ 31 октября 2011

Попробуйте взглянуть на это: http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

1 голос
/ 31 октября 2011

Проверьте кодировку вашей страницы.возможно, вы получаете правильные результаты, но выходной HTML, созданный apache + php, указывает браузеру использовать другую кодировку.

0 голосов
/ 31 октября 2011

Фактически проблема была устранена с помощью:

$dbh = new PDO("mysql:host=localhost;dbname=test;", 'root', 'pass');
$dbh -> exec("set names cp1251");

Спасибо за усилия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...