加入表时PDO fetch_assoc [重复]

问题描述 投票:-1回答:1

在连接表时,使用PDO获取关联数组似乎不会显示所有结果列。

<?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,但事实并非如此。只有一行名为Name。是否有一个解决方案没有重命名每一列像SELECT printermanufacturer.Name AS pmName ...

谢谢

编辑:在重复的问题中还有(未答复的)问题:“有没有办法自动将t2列标识为t2.col1,t2.col2,(等)”这可能吗?

php mysql pdo
1个回答
0
投票

PDO::FETCH_NAMED应该有所帮助

PDO :: FETCH_NAMED:返回一个与PDO :: FETCH_ASSOC格式相同的数组,但如果有多个具有相同名称的列,则该键引用的值将是该行中所有值的数组那个列名

© www.soinside.com 2019 - 2024. All rights reserved.