PDO vs PDO

Jons

Новичок
PDO vs PDO

Перенес сайт с одного на другой хост.
Перестали работать запросы вида:
PHP:
        $query = $this->db->prepare("
      	  SELECT *,
          FROM_UNIXTIME(`umsg_date`, '%d.%m.%Y (%H:%i:%s)') as `umsg_date_format`   
      	  FROM `" . TN_USER_MSG . "` 
      	  WHERE `umsg_id` = :umsg_id AND (`umsg_from_uid` = :uid OR `umsg_uid` = :uid)
      	  ");
        $query->bindValue(':umsg_id', $umsg_id, PDO::PARAM_INT);
        $query->bindValue(':uid', $uid, PDO::PARAM_INT);
        $query->xcute(null, 'getUsers', __LINE__, __FILE__);
        $result = $query->fetch(PDO::FETCH_ASSOC);
Ругается, мол количество токенов у тебя разное с количеством биндов, друг.
Чинится конечно добавлением третьего бинда и правкой второго :uid на :uid2.
Но как то это неправильно по-моему.
 

findnext

Новичок
а версия php какая?

-~{}~ 02.03.09 13:13:

$query->xcute надеюсь, что это опечатка
 

Heresy

Новичок
Что-то там с буферованием запросов...
Начиная с PHP 5.2.x (не помню точно) оно по умолчанию отключено.
Добавь параметры array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true) в конструктор, или в сам prepare.

Т.е. что-то вроде:
PHP:
$query = $this->db->prepare("
            SELECT *,
          FROM_UNIXTIME(`umsg_date`, '%d.%m.%Y (%H:%i:%s)') as `umsg_date_format`   
            FROM `" . TN_USER_MSG . "` 
            WHERE `umsg_id` = :umsg_id AND (`umsg_from_uid` = :uid OR `umsg_uid` = :uid)",
          array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true)
          );
 
Сверху