mysql“之间的日期”查询在phpmyadmin中工作,但不返回PDO

时间:2014-08-18 12:36:09

标签: php mysql sql pdo phpmyadmin

当我尝试使用php / pdo运行时,结果为空,但是当我替换变量并回显查询并将粘贴复制到phpmyadmin时,它可以正常工作。

我猜它与查询中的BETWEEN部分有关,如果我删除它就可以。

php代码:

$sql = 'SELECT * from `activity` 
WHERE `activity`.`employee_id` = :id 
AND `activity_endtime` BETWEEN :start 
AND :end 
ORDER BY :order LIMIT 0 ,:limit';

$date_end = date('Y-m-d',time());
$date_start = date('Y-m-01',strtotime($date_end));
$values = array(
':id' => $_SESSION['user_id'], 
':start' => '"'.$date_start.'"', 
':end' => '"'.$date_end.'"',
':order' => 'activity_id', 
':limit' => '10');
$q->execute($values);

while($r = $q->fetch(PDO::FETCH_ASSOC)){
 //does not get here after adding the between part
}

我从更换参数和回显得到的查询:

SELECT * from `activity` 
WHERE `activity`.`employee_id` = 7 
AND `activity_endtime` BETWEEN "2014-08-01" 
AND "2014-08-18" 
ORDER BY activity_id LIMIT 0 ,10

1 个答案:

答案 0 :(得分:4)

不要用引号包装值。

更改

':start' => '"'.$date_start.'"', 
':end' => '"'.$date_end.'"',

':start' => $date_start, 
':end' => $date_end,

让我知道它是否适合你。