mysqli没有正确读取AND / OR语句

时间:2014-04-10 18:59:02

标签: php database datetime select mysqli

我在从数据库中检索数据时遇到问题,mysqli忽略了我的代码中的一些AND语句。

$query_check = "select * from databaseTime where 
        (authID='".$Database->real_escape_string($_SESSION['profile']['authID'])."' AND
         userID = '".$Database->real_escape_string($_POST['contact'])."') AND (
        fromDateTime >= '".$Database->real_escape_string($_POST['fromDate'].' '.$fromTime)."' AND
         fromDateTime <= '".$Database->real_escape_string($_POST['toDate'].' '.$toTime)."') OR
        (fromDateTime <= '".$Database->real_escape_string($_POST['fromDate'].' '.$fromTime)."' AND
         fromDateTime >= '".$Database->real_escape_string($_POST['toDate'].' '.$toTime)."') OR
         (toDateTime >= '".$Database->real_escape_string($_POST['fromDate'].' '.$fromTime)."' AND
         toDateTime <= '".$Database->real_escape_string($_POST['toDate'].' '.$toTime)."'))";

        $result_check = $Database->query( $query_check );   
        $row_check = $result_check->fetch_object();

    if(!$row_check)
        echo valid;
    else
        echo invalid;

查询应检查authID和userID是否匹配,但在从数据库进行调用时似乎忽略了这一点

如果我正确地做了这件事,请告诉我。

我想要得到的是:

| .... |表示每个用户ID ex的时间范围:上午3:00 - 上午5:00

===========================================================================
user ID: 5 ------------------|.......................|---------------- base
user ID: 5 ------------------|.......................|---------------- invalid
user ID: 5 |.......................|---------------------------------- invalid
user ID: 5 ----------------------------|.......................|------ invalid
user ID: 5 |.........|------------------------------------------------ valid
user ID: 5 ------------------------------------------|.........|------ valid
user ID: 6 |.......................|---------------------------------- valid
user ID: 6 ----------------------------|.......................|------ valid
user ID: 6 ------------------|.......................|---------------- valid

UPDATE根据评论中的建议改变了代码中的几行:

这是我现在唯一的问题:

===========================================================================
user ID: 5 ------------------|.......................|---------------- base
user ID: 5 ------------------------------------------|.............|-- valid

而不是打印有效,它给我一个无效的。

当我从查询中删除(=)这是问题

===========================================================================
user ID: 5 ------------------|.......................|---------------- base
user ID: 5 ------------------|.......................|---------------- invalid

而不是打印无效,它给我一个有效的。

0 个答案:

没有答案