PDO подавляет столбцы с именами, равными


я Понял, что при использовании PDO, чтобы выполнить запрос ниже, результаты противоречивы, с PhpMyadmin и Console do Mysql:

SELECT a.*, n.* FROM arquivo AS a INNER JOIN numeracao AS n ON 
                    (a.id_numeracao  =  n.id_numeracao) WHERE total_documentos=-1

таблица arquivo имеет структуру, как это:

Таблица файл: id_arquivo, имя, номер, status, id_tipo_arquivo, dt_arquivamento, id_desarquivamento, id_usuario, id_numeracao

Таблица numeração, таким образом:

Таблица numeracao: id_numeracao, numeracao, id_tipo_arquivo, status, total_documentos, использование

таблицы есть два столбца, в общем: "статус" и "id_numeracao".

Если я выполнить запрос через PhpMyadmin, Console do Mysql результат отличает столбцов в каждой таблице. но работает с PDO столбцы в общем, подавляются, а только отображается.

я Знаю, что правильные столбцы имеют имена отдельных или использовать псевдоним, но, так как возникает такая разница в результатах, PHP и Mysql?

Я использую запрос таким образом:

$q = $conn->prepare($select);

if($q->execute()){                 
   $data = array();
   while ($row = $q->fetch($pdo_fetch)) {  
      $data[] = $row;   
   } 
}

Примечание.: Проверил расширения mysql и mysqli, и результат тот же.

Author: robertaodj, 2014-03-08

1 answers

По этот ответ SO на английском языке, вы можете указать PDO включать имя таблицы в имя каждого столбца:

$conn->setAttribute(PDO::ATTR_FETCH_TABLE_NAMES, true);

С этим, значения его примере будут получены таким образом:

$id1 = $row['arquivo.id_numeracao'];
$id2 = $row['numeracao.id_numeracao'];
 4
Author: bfavaretto, 2017-05-23 12:37:27