php - 我想从数据库中检索数据条件是数据之间的两个日期

标签 php mysql

CREATE TABLE IF NOT EXISTS `guest_details` (
  `name` varchar(15) NOT NULL,
  `email` varchar(15) NOT NULL,
  `cell` varchar(15) NOT NULL,
  `roomtype` varchar(15) NOT NULL,
  `checkin` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `checkout` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `adults` varchar(15) NOT NULL,
  `numberofrooms` varchar(15) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `guest_details` (`name`, `email`, `cell`, `roomtype`, `checkin`, `checkout`, `adults`, `numberofrooms`) 
VALUES
('sumanth', 'sumanth@gmail.c', '99999999999999', 'Single_AC', '2014-09-15 00:00:00', '2014-09-19 00:00:00', 'FGDFG', '2'),
('vijey', 'vijey.sk@gmail.', '222222222222222', 'Double_AC', '2014-09-21 00:00:00', '2014-09-24 00:00:00', 'lpuio', '1');

我需要从数据库中检索 checkin 日期和 checkout 日期之间的数据。我的问题是日期无法比较。我也在检查 mysql。我需要解决的问题是什么。

$res = "select * from guest_details where checkin>=$date1 AND checkout<=$date1";
$res1 = mysql_query($res);
if ($res1) 
/*while($row = mysql_fetch_array($res1))*/ 
{
    echo $date1;        
}
?>

最佳答案

您正在比较 $date1 值,而不用单引号引用它,因此您的结果查询类似于

checkin>= 2014-09-18 AND checkout<= 2014-09-18 

它会产生错误,这必须类似于

select * from guest_details where checkin>='$date1' AND checkout<= '$date1'

更好地为参数使用占位符

$dbh = new PDO('mysql:host=yourhost;dbname=dbname', 'user', 'pass');
$sth = $dbh->prepare("select * from guest_details where
checkin >= :date  AND checkout <= :date 
");
$sth->bindParam(':date', $date1, PDO::PARAM_STR);
$sth->execute();
$result = $sth->fetchAll(); 

foreach($result as $res){

    echo $res['your_date_column_name'];
    echo $res['another_column'];

}

PDO::errorInfo

此外,在开发过程中,您应该在执行之前注意错误

$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES,false); 
if (!$sth) { 
    echo "\nPDO::errorInfo():\n"; 
    print_r($dbh->errorInfo()); 
} 

关于php - 我想从数据库中检索数据条件是数据之间的两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25907032/

相关文章:

php - Laravel 和使用命名空间 - 找不到类

php - 获取MySQL查询中使用的所有表名的方法

php - 如何使用php将数据数组插入mysql

php - 将 utf8 字符转换为 iso-88591 并返回 PHP

mysql - mysql双列中存储的数字是否有可能在多次乘法后失去精度?

Mysql Left Join(一对多关系)

php - 我如何通过从数据库检索代码来输出这种格式?

mysql---我应该使用哪种类型?

php - 如何只比较 MySQL 中 2 个表之间的月份和年份

C# 连接数据库并安全输入数据