我正在使用PHP中的PDO从我的MSSQL Server 2016数据库中获取数据。 查询效果很好:
try {
$db = new PDO( 'dblib:host='.$server.' ; dbname='.$database, $user, $pw);
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch(PDOException $e) {
die( print_r( $e->getMessage() ) );
}
$smt = $db->query("SELECT ABP.cArtNr AS 'Artikelnummer',
MAX(SUBSTRING(ABP.cName,8,50)) AS 'Beschreibung',
SUM(ABP.nQuantityPurchased) AS 'Anzahl',
SUM(ABP.nQuantityPurchased) * MAX(AA.fPrice) AS 'Brutto-Umsatz'
FROM pf_amazon_bestellung
INNER JOIN pf_amazon_bestellungpos ABP ON pf_amazon_bestellung.kAmazonBestellung = ABP.kAmazonBestellung
INNER JOIN pf_amazon_angebot AA ON ABP.cArtNr = AA.cSellerSKU
WHERE dPurchaseDate >= DateAdd(DAY, DateDiff(DAY, 0, getDate()), 0)
AND pf_amazon_bestellung.cOrderStatus <> 'Canceled'
GROUP BY ABP.cArtNr");
while(($o = $smt->fetch(PDO::FETCH_ASSOC)) !== false) {
print_r($o);
}
$db = NULL;
您可以在这里查看结果:http://stats.valonic.com/server_processing4.php
此结果对我而言不可用,因为我需要一个JSON,该JSON必须具有此处显示的结构:http://stats.valonic.com/server_processing.php 在这里,我使用了以下代码:
$a = array();
while ($row = mssql_fetch_assoc($result)) {
$a['data'][] = $row;
}
echo json_encode($a);
但是我想改用PDO。
我尝试使用fetchAll代替:
$result = $smt->fetchAll();
print_r($result);
其结果可以在这里看到:http://stats.valonic.com/server_processing3.php 好的,可以,但是不知道如何将结果转换为http://stats.valonic.com/server_processing.php中所示的结构。
您能帮我吗? 谢谢您的反馈!