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
, и результат тот же.
1 answers
По этот ответ SO на английском языке, вы можете указать PDO включать имя таблицы в имя каждого столбца:
$conn->setAttribute(PDO::ATTR_FETCH_TABLE_NAMES, true);
С этим, значения его примере будут получены таким образом:
$id1 = $row['arquivo.id_numeracao'];
$id2 = $row['numeracao.id_numeracao'];