连接表时PDO提取asoc

时间:2018-09-11 18:10:11

标签: php mysql pdo

使用PDO提取assoc数组似乎无法在连接表时显示所有结果列。

<?php
$stmt = $GLOBALS['db']->prepare("
SELECT * 
  FROM printer
     , printermanufacturer
     , printermodel
     , colorprofile
     , papersize 
 WHERE User = :userID 
   AND printer.Manufacturer = printermanufacturer.ID 
   AND printer.Model = printermodel.ID 
   AND printer.Colorprofile = colorprofile.ID 
   AND printer.papersize = papersize.ID
");

$stmt->bindValue(':userID', $userID, PDO::PARAM_INT);
$stmt->execute();
print_r($stmt->fetchAll(PDO::FETCH_ASSOC));
?>

这应该导致一个关联数组,例如printermanufacturer.Nameprintermodel.Name,但不是。只有一行称为“名称”。 是否有一种解决方案,而不必重命名SELECT printermanufacturer.Name AS pmName ...

的每一列

谢谢

edit:在重复的问题中,还有一个(未回答的)问题: “有没有一种方法可以自动将t2列标识为t2.col1,t2.col2等(等)” 这可能吗?

1 个答案:

答案 0 :(得分:0)

PDO::FETCH_NAMED应该有所帮助

  

PDO :: FETCH_NAMED:返回与PDO :: FETCH_ASSOC格式相同的数组,不同之处在于,如果有多个具有相同名称的列,则该键引用的值将是包含所有值的数组。具有该列名称的行