将FROM_UNIXTIME添加到WHERE子句时出现未知PHP PDO错误
我有这个代码,我不知道为什么它不工作。显然,它没有捕获任何异常,我尝试调试,发现它在我添加以下内容时出现中断: 其中月份(从\u UNIXTIME(UNIXTIME))='7' 因为当我去掉它的时候,一切似乎都很好将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
<?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”
非常感谢。我的错。我忘了把它编辑成正确的列名。