使用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.Name
和printermodel.Name
,但不是。只有一行称为“名称”。
是否有一种解决方案,而不必重命名SELECT
printermanufacturer.Name AS pmName
...
谢谢
edit:在重复的问题中,还有一个(未回答的)问题: “有没有一种方法可以自动将t2列标识为t2.col1,t2.col2等(等)” 这可能吗?
答案 0 :(得分:0)
PDO::FETCH_NAMED应该有所帮助
PDO :: FETCH_NAMED:返回与PDO :: FETCH_ASSOC格式相同的数组,不同之处在于,如果有多个具有相同名称的列,则该键引用的值将是包含所有值的数组。具有该列名称的行