PHP返回无效的MySQL资源

时间:2010-05-03 19:01:21

标签: php mysql

    $LDATE = '#' . $_REQUEST['LDateDay'] . '/' . $_REQUEST['LDateMonth'] . '/' . $_REQUEST['LDateYear'] . '#';
    $RDATE = '#' . $_REQUEST['RDateDay'] . '/' . $_REQUEST['RDateMonth'] . '/' . $_REQUEST['RDateYear'] . '#';
    include("../../sql.php");
    $myconn2 = mysql_connect(/*removed*/, $username, $password);
    mysql_select_db(/*removed*/, $myconn2);
    $LSQLRequest = "SELECT * FROM flight WHERE DepartureDate = ".$LDATE;
    $LFlights = mysql_query($LSQLRequest, $myconn2);
    $RSQLRequest = "SELECT * FROM flight WHERE DepartureDate = ".$RDATE;
    $RFlights = mysql_query($RSQLRequest, $myconn2);

假设所有$ _REQUEST都是日/月/年字段中相应字段的有效数值,LFlights和RFlights如何无效?当我查询整个数据库时,我得到了数百个结果,所以我知道数据库和连接数据很好,并且DepartureDate字段也存在。

编辑: 当我提取数据库的所有内容时,日期以“YYYY-MM-DD”格式返回。所以我将D转换为字符串,如果它是<10,那么0D。然后建立了一个字符串YYYY-MM-DD。仍然没有结果。现在没有错误,但没有结果。我精心挑选了我知道记录在其中的价值观。

2 个答案:

答案 0 :(得分:1)

尝试在单个qoutes中查询查询中的日期和日期。

$LSQLRequest = "SELECT * FROM flight WHERE DepartureDate = '".$LDATE."'";
$RSQLRequest = "SELECT * FROM flight WHERE DepartureDate = '".$RDATE."'";

我也相信你不需要#符号。这通常是Access的事情。

 $LDATE = $_REQUEST['LDateDay'] . '/' . $_REQUEST['LDateMonth'] . '/' . $_REQUEST['LDateYear'] ;
 $RDATE = $_REQUEST['RDateDay'] . '/' . $_REQUEST['RDateMonth'] . '/' . $_REQUEST['RDateYear'] ;

答案 1 :(得分:1)

MySQL只能理解YYYY-MM-DD格式的日期文字或一些细微的变化。 MySQL无法识别DD-MM-YYYY

http://dev.mysql.com/doc/refman/5.1/en/datetime.html

上查看更多详情

另外,如另一个答案所述,日期文字必须是单引号,如字符串文字。


如果您不包含引号,则显示的代码如下所示:

SELECT * FROM flight WHERE DepartureDate = 2010/5/3.

算术表达式2010除以5除以3等于134.0。这不符合任何日期。

SELECT CURDATE() = 2010/5/3;

返回false。

SELECT CURDATE() = '2010/5/3';

返回true;