mysql — неизвестная ошибка PHP PDO при добавлении FROM_UNIXTIME в предложение WHERE

У меня есть этот код, и я не уверен, почему он не работает. Видимо, это не ловит никаких исключений, я попытался отладить и обнаружил, что он ломается в точке, где я добавляю:

WHERE MONTH (FROM_UNIXTIME (unixtime)) = ‘7’

Потому что, когда я удаляю это, все, кажется, работает просто отлично.

<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=myDb', 'root', 'password');
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

$stmt = $dbh->prepare('SELECT col1, count(*) as frequency FROM myTable WHERE MONTH(FROM_UNIXTIME(unixtime))='7' GROUP BY col1 ORDER BY frequency DESC');
$stmt->execute();

// populate results
$results = array();
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
$row_array['col1'] = $row['col1'];
$row_array['frequency'] = $row['frequency'];

array_push($results,$row_array);
}

// and return to typeahead
echo json_encode($results);$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>

Я также был бы признателен за любую помощь по включению отображения журналов ошибок, если необходимо изменить или настроить какую-либо конфигурацию php.ini или другого сервера, пожалуйста, дайте мне знать.

Спасибо!

-1

Решение

У вас есть проблема с цитатами. делай так

$stmt = $dbh->prepare("SELECT col1, count(*) as frequency
FROM myTable
WHERE MONTH(FROM_UNIXTIME(unixtime))='7' GROUP BY col1 ORDER BY frequency DESC");
1

Другие решения

Измените одинарные кавычки вокруг оператора SQL в двойных кавычках. Одиночные кавычки вокруг 7 вызывают вашу проблему. Одинарные кавычки в одинарных кавычках.

0

По вопросам рекламы [email protected]