За последние 24 часа нас посетили 18119 программистов и 1652 робота. Сейчас ищут 1637 программистов ...

Проблема в php с pdo_mysql (запрос возвращает битый массив)

Тема в разделе "Установка PHP", создана пользователем birdok, 16 дек 2010.

  1. birdok

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

    С нами с:
    15 дек 2010
    Сообщения:
    1
    Симпатии:
    0
    ОС:
    CentOS 5.5 x86_64
    Установленное ПО:
    Apache 2.2.3
    php 5.2.14
    mysql comunity server 5.1.53 (x86_64)
    ....
    PDO Driver for MySQL, client library version 5.0.67
    mysqlClient API version 5.0.67

    Проблема заключается в следующем
    Создаю любой простой запрос к БД через pdo_mysql типа SELECT CONCAT('st','Ring') AS myString, 1+1 AS mySum
    Код (Text):
    1.  
    2. $db = new PDO('mysql:host=localhost;dbname='.$config['dbname'], $config['username'], $config['password']);
    3. $s="SELECT CONCAT('st','Ring') AS myString, 1+1 AS mySum";
    4. $rs = $db->query($s)->fetchAll(PDO::FETCH_ASSOC);
    5. var_dump($rs);
    вот что получаю
    Код (Text):
    1.  
    2. array(1) {
    3.   [0]=>
    4.   array(2) {
    5.     ["myString"]=>
    6.     string(6) "������"
    7.     [""]=>
    8.     string(1) "`"
    9.   }
    10. }
    - козяблики в значениях и вдобавок потерялось название колонки "mySum".
    В чем может быть проблема ?

    Если же делаю этот запрос средствами mysql_query, запрос выполняется правильно - получаю:
    Код (Text):
    1.  
    2. myString => stRing  
    3. mySum => 2
     
  2. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    PHP:
    1. <?php
    2. $db = new PDO('mysql:host=localhost;dbname='.$config['dbname'], $config['username'], $config['password']);
    3. $db->exec("SET NAMES UTF8");
    4. // ...
    Где UTF8 - кодировка с которой работает скрипт (например, CP1251)