在连接表时,使用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.Name
和printermodel.Name
,但事实并非如此。只有一行名为Name。是否有一个解决方案没有重命名每一列像SELECT
printermanufacturer.Name AS pmName
...
谢谢
编辑:在重复的问题中还有(未答复的)问题:“有没有办法自动将t2列标识为t2.col1,t2.col2,(等)”这可能吗?
PDO::FETCH_NAMED应该有所帮助
PDO :: FETCH_NAMED:返回一个与PDO :: FETCH_ASSOC格式相同的数组,但如果有多个具有相同名称的列,则该键引用的值将是该行中所有值的数组那个列名