При подключении к внешней БД получаю знаки вопроса
        Здравия всем.
Столкнулся с такой проблемой.
При попытке получить данные из внешней базы данных получаю знаки вопроса.
Кодировка таблицы и базы данных на другом сервере mysql utf-8.
При переносе этой базы данных и конкретно этой таблицы на сервер, где живёт modX, но под другого юзера (считай ничего не изменилось, разве что проверили глюки базы данных), продолжают показываться знаки вопроса.
При переносе этой таблицы в базу данных modX и выполнение кода
В чём может быть проблема?
Класс prichkVirtueMartProduct задаю так:
    
    
                                                                                
            Столкнулся с такой проблемой.
При попытке получить данные из внешней базы данных получаю знаки вопроса.
$dsn = 'mysql:host='.$mySiteDB[dbhost].';dbname='.$mySiteDB[db].';port=3306;charset=utf-8';
    $myDB = new xPDO($dsn,$mySiteDB[dbuser],$mySiteDB[dbpasswd]);
    if($myDB->connect()){
        echo 'Работаем.';
	$results = $myDB->query("SELECT * FROM jos_vm_product limit 1");
	$row = $results->fetch(PDO::FETCH_ASSOC);
	echo '<pre>';
	var_dump($row);
	echo '</pre>';
    }Кодировка таблицы и базы данных на другом сервере mysql utf-8.
При переносе этой базы данных и конкретно этой таблицы на сервер, где живёт modX, но под другого юзера (считай ничего не изменилось, разве что проверили глюки базы данных), продолжают показываться знаки вопроса.
При переносе этой таблицы в базу данных modX и выполнение кода
if($o=$modx->getObject('prichkVirtueMartProduct', array('product_id'  => '573'))){
            $oa = $o->toArray();
            echo '<pre>';
            var_dump($oa);
            echo '</pre>';
	}выводит правильную кодировку. В процессе переноса с таблицей никаких конвертаций не производится. На всех базах данных везде, где смог посмотреть стоит utf-8.В чём может быть проблема?
Класс prichkVirtueMartProduct задаю так:
$modx->map['prichkVirtueMartProduct'] = array (
'table' => 'jos_vm_product',
'fields' =>
    array (
        'product_id' => '',
        'product_sku' => '',
        'product_discount_id' => '',
        'product_name' => '',
    ),
    'fieldMeta' => 
    array (
    'product_id' => array(
        'dbtype' => 'integer',
        'phptype' => 'integer',
        'null' => false,
        'index' => 'pk',
        'generated' => 'native',
        'attributes' => 'unsigned',
    ),
    'product_sku' => 
    array (
        'dbtype' => 'varchar',
        'precision' => '255',
        'phptype' => 'string',
        'null' => false,
        'default' => '',
        //'index' => 'fulltext',
        //'indexgrp' => 'content_ft_idx',
    ),
    'product_discount_id' =>
    array(
        'dbtype' => 'integer',
        'phptype' => 'integer',
        'null' => false,
        'attributes' => 'unsigned',
    ),
    'product_name' => 
    array (
        'dbtype' => 'varchar',
        'precision' => '255',
        'phptype' => 'string',
        'null' => false,
        'default' => '',
        //'index' => 'fulltext',
        //'indexgrp' => 'content_ft_idx',
    ),
    
    ),
);    Комментарии: 4
                А можно как-то свой вопрос в вопросы поместить?            
                    
                Сам отвечаю на свой вопрос.
где-то скопировал параметры $dsn в инете, где была указана кодировка utf-8
правильный код
PS Так а где. Конечно в официальном RTFM. А оно оказывается с ошибочкой.
rtfm.modx.com/xpdo/2.x/getting-started/using-your-xpdo-model/database-connections-and-xpdo
            
                    где-то скопировал параметры $dsn в инете, где была указана кодировка utf-8
правильный код
$dsn = 'mysql:host='.$mySiteDB[dbhost].';dbname='.$mySiteDB[db].';port=3306;charset=utf8';Тогда всё работает.PS Так а где. Конечно в официальном RTFM. А оно оказывается с ошибочкой.
rtfm.modx.com/xpdo/2.x/getting-started/using-your-xpdo-model/database-connections-and-xpdo
                А в файле config.inc.php всё норм…
Я тоже недавно писал подключение к сторонней БД, и также видел где-то «utf-8», кстати не на rtfm.modx.com, а в другом месте. В первую очередь полез сравнивать с конфигом MODX, т.к. это рабочий вариант.
Обновлено
Кстати и в офф, и тут для xPDO 2.2+ описано, как «utf8». Так что проблема не в некорректной записи в RTFM, а в банальной невнимательности разработчика.
                    $database_dsn = 'mysql:host=localhost;dbname=base;charset=utf8';Я тоже недавно писал подключение к сторонней БД, и также видел где-то «utf-8», кстати не на rtfm.modx.com, а в другом месте. В первую очередь полез сравнивать с конфигом MODX, т.к. это рабочий вариант.
Обновлено
Кстати и в офф, и тут для xPDO 2.2+ описано, как «utf8». Так что проблема не в некорректной записи в RTFM, а в банальной невнимательности разработчика.
                Defining Multiple Connections мне было без надобности.
К тому же я не вкурил, как в Multiple Connections переключаться между соединениями базы, поэтому в тот код не вчитывался.
А мы тут типа выискиваем виноватого что ли?!
К слову сказать, ссылка, которая офф равносильна ссылке, где я вычитал utf-8.
Кстати, на той же офф ссылке в Example Connection указана та же самая utf-8. То есть в начале страницы два раза указана неправильная информация.
                    К тому же я не вкурил, как в Multiple Connections переключаться между соединениями базы, поэтому в тот код не вчитывался.
А мы тут типа выискиваем виноватого что ли?!
К слову сказать, ссылка, которая офф равносильна ссылке, где я вычитал utf-8.
Кстати, на той же офф ссылке в Example Connection указана та же самая utf-8. То есть в начале страницы два раза указана неправильная информация.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.