Есть ли какие-либо ошибки в моем коде? Я попытался отобразить результат, но возвратил ноль, и вместо этого появился заголовок выше или есть какой-либо способ, как это сделать гладко. Пожалуйста, дайте мне знать. БлагодаряSQLSTATE [HY000]: Общая ошибка в PDOStatement-> fetchAll (2)
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION, 1);
$sql = (" SET @curRank1 = 0;
SET @curRank2 = 0;
SELECT
D1.reading_date
,D1.consumer_id
,D1.readings AS previous
,D2.readings AS current
,(D2.readings - D1.readings) AS kwh_used
FROM
(
SELECT M1.*, @curRank1 := @curRank1 + 1 AS rank
FROM consumption M1
LEFT JOIN consumption M2
ON Date(M1.reading_date) = Date(M2.reading_date)
AND M1.reading_date > M2.reading_date
WHERE M2.reading_date IS NULL
) D2
LEFT JOIN
(
SELECT M1.*, @curRank2 := @curRank2 + 1 AS rank
FROM consumption M1
LEFT JOIN consumption M2
ON Date(M1.reading_date) = Date(M2.reading_date)
AND M1.reading_date > M2.reading_date
WHERE M2.reading_date IS NULL
) D1
ON D2.rank = (D1.rank + 1)
WHERE D1.reading_date IS NOT NULL
AND D1.consumer_id = :consumer_id");
$q = $pdo->prepare($sql);
$q->execute(array($id));
$q->nextRowset();
$data = $q->fetchAll(PDO::FETCH_ASSOC);
EDIT: SQLSTATE [HY000]: Общая ошибка onPDOStatement-> fetchAll (2)
был установлен как \t, если { \t \t $ ID = $ _REQUEST [ 'consumer_id'] (пусто ($ _ GET [ 'consumer_id'])!); \t} –
Да, это не проблема. Вы не говорите SQL, как это получить. Rizier или мой ответ должны работать на вас. http://php.net/manual/en/pdostatement.execute.php – chris85
Уже пробовал также эхо, что user_id, если оно равно null, и оно возвращает не null –