Php 如何知道mysql中的两个日期是否相等
我正在尝试获取id和日期匹配的行数。我已经在mysql中运行了这个查询,它运行得很好Php 如何知道mysql中的两个日期是否相等,php,mysql,Php,Mysql,我正在尝试获取id和日期匹配的行数。我已经在mysql中运行了这个查询,它运行得很好 SELECT COUNT(*) FROM table WHERE Id = '587762' && RequestDate = '2017-03-10' 但在php中执行时,它不会返回所需的结果。这是我的php文件 <?php $pdo = new PDO('mysql:host=localhost;dbname=personDB','root',''); if(
SELECT COUNT(*) FROM table WHERE Id = '587762' && RequestDate = '2017-03-10'
但在php中执行时,它不会返回所需的结果。这是我的php文件 <?php
$pdo = new PDO('mysql:host=localhost;dbname=personDB','root','');
if($_SERVER['REQUEST_METHOD'] == 'GET'){
$Id = $_GET['ID'];
$date = date("Y-m-d", strtotime($_GET['date']));
$row_count = $pdo->query("SELECT * FROM table WHERE Id = '$Id' AND RequestDate = '$date'")->fetchColumn();
if($row_count > 0){
$response = false;
header('Content-Type: application/json');
echo json_encode($response);
}
else{
$response = true;
header('Content-Type: application/json');
echo json_encode($response);
}
}
?>
RequestDate没有时间组件。我正在邮递员中检查它,并给出已经存在的值。它应该返回false,但总是返回true。我认为您使用的是类型字符串而不是日期。使用
strotime()
将字符串转换为日期类型
试试这个:
$date = strtotime($_GET['date']);
变量
$row\u count
不包含行数,而是查询结果。试试这个:
$result = $pdo->query($sql);
$row_count = $result->fetchColumn();
fetchColumn()
函数获取结果第一行的第一列。当返回一行时,为什么设置$response=false
?GET['date'的值是多少?@GordonLinoff当存在相同id和id的值时,我想做一些其他事情date@justbaron日期而非时间组件使用了count是的,您在查询中使用了count(*)
,但这并不意味着查询结果等于count(*)
。如果您的查询是selectcount(*),那么从表中选择somethingels
?我不想要结果第一行的第一列。我需要总计行数,但查询返回一个包含1行和1列的“表”。此表中的列名可能是“COUNT(*)”。此表中的单元格包含总行数。我在fetchColumn“调用布尔值中的成员函数fetchColumn()时出错”仍然没有getting@luke数据库中的记录看起来如何?您可以尝试使用以下语法设置$date
的格式$formatted=date('Y-m-d H:i:s',$date)
,但随后将其设置为数据库中的格式仍然没有任何结果。我已根据您的评论和回答更新了我的代码。@luke RequestDate的类型是什么?一串