我有一個MySQL數據庫中的這些表:爲MySQL準備語句PHP(與mysqli的)
CREATE TABLE `product` (
`idProduct` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`category` varchar(255) NOT NULL,
PRIMARY KEY (`idProduct`)
);
CREATE TABLE `sale` (
`idSale` int(10) unsigned NOT NULL AUTO_INCREMENT,
`highDate` date NOT NULL,
`idProduct` int(10) unsigned NOT NULL,
`idUser` varchar(45) NOT NULL,
PRIMARY KEY (`idSale`)
);
我想獲得一個錶行中的用戶和產品在列,像這樣的問題: MySQL Pivot row into dynamic number of columns
在SQL Fiddle (Demo)工作正常,但我需要幫助從PHP與mysqli查詢它。
這是正確的嗎?
$this->dbh->query("SET @sql = NULL");
$stmt = $this->dbh->query("SELECT GROUP_CONCAT(DISTINCT
CONCAT(
'count(case when category = ''',
category,
''' then 1 end) AS ',
replace(category, ' ', '')
)
) INTO @sql
FROM product;");
$stmt = $this->dbh->prepare("SET @sql = CONCAT('SELECT s.idUser, ', @sql, ' FROM sale s
LEFT JOIN product p ON p.idProduct = s.idProduct
GROUP BY s.idUser');");
$stmt->execute();
如何從查詢中檢索數據? Execute()方法返回TRUE或FALSE。
好的,謝謝!問題是:如何知道列數?要使用'fetch()'我需要在'bind_result($ column1,$ column2,...)'之前完成,但我不知道有多少列檢索查詢。 – Stokres