Sql Query不能使用php变量

时间:2013-07-29 09:51:06

标签: php mysql

我的Sql查询返回空结果集。格式是否有任何错误。我在查询中使用了一些php变量..

public function getBlockDate($month,$year){
    $connection = db::factory('mysql');
    $time_from="00-00-00";
    $time_to="23-59-59";
    $sql = 'select * from blocks WHERE date LIKE "'.$year.'-'.$month.'%" AND (time_From="'.$time_from.'" AND time_to="'.$time_to.'")';

    return $connection->getArray($sql);
}

* 此处time_from和time_to表列的时间类型为*

3 个答案:

答案 0 :(得分:0)

更改您的SQL查询

$sql = 'select * from blocks WHERE date LIKE "'.$year.'-'.$month.'%" AND (time_From="'.$time_from.'" AND time_to="'.$time_to.'")';
'$time_from

上缺少

$time_to个引号

已编辑查询

$time_from="00:00:00";
$time_to="23:59:59";
$sql = 'select * from blocks WHERE date LIKE "'.$year.'-'.$month.'%" BETWEEN (time_From="'.$time_from.'" AND time_to="'.$time_to.'")';

还会更改-:变量中$time_from的{​​{1}}

答案 1 :(得分:0)

这对你有用。你没有在AND条款中加上配额。 此外,在查询中使用LIKE时,请确保正确放置通配符。在您的情况下,您正在查找日期列中的记录,其中以年 - 月开头,那么就是您的时间。

 $time_from="00-00-00";
 $time_to="23-59-59";
 $sql = "SELECT * FROM blocks WHERE date LIKE '".$year."-".$month."%' AND (time_From='".$time_from."' AND time_to='".$time_to."')";

答案 2 :(得分:0)

将日期和时间转换为通用格式,然后使用它进行查询。