将FROM_UNIXTIME添加到WHERE子句时出现未知PHP PDO错误

将FROM_UNIXTIME添加到WHERE子句时出现未知PHP PDO错误,php,mysql,pdo,ubuntu-14.04,php-ini,Php,Mysql,Pdo,Ubuntu 14.04,Php Ini,我有这个代码,我不知道为什么它不工作。显然,它没有捕获任何异常,我尝试调试,发现它在我添加以下内容时出现中断: 其中月份(从\u UNIXTIME(UNIXTIME))='7' 因为当我去掉它的时候,一切似乎都很好 <?php try { $dbh = new PDO('mysql:host=localhost;dbname=myDb', 'root', 'password'); $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRM

我有这个代码,我不知道为什么它不工作。显然,它没有捕获任何异常,我尝试调试,发现它在我添加以下内容时出现中断:

其中月份(从\u 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号左右的单引号会导致您的问题。单引号中的单引号。

从命令行运行此查询时会发生什么情况?当我在myadmin.php上执行查询时,效果很好。我想知道为什么我的qn也被否决了,所以也许下次我可以更好地格式化我的问题。我现在得到了这个错误
错误!:SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“unixtime”
非常感谢。我的错。我忘了把它编辑成正确的列名。