У меня есть этот код, и я не уверен, почему он не работает. Видимо, это не ловит никаких исключений, я попытался отладить и обнаружил, что он ломается в точке, где я добавляю:
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 или другого сервера, пожалуйста, дайте мне знать.
Спасибо!
У вас есть проблема с цитатами. делай так
$stmt = $dbh->prepare("SELECT col1, count(*) as frequency
FROM myTable
WHERE MONTH(FROM_UNIXTIME(unixtime))='7' GROUP BY col1 ORDER BY frequency DESC");
Измените одинарные кавычки вокруг оператора SQL в двойных кавычках. Одиночные кавычки вокруг 7 вызывают вашу проблему. Одинарные кавычки в одинарных кавычках.