0

我在数据库中有一张预订事件表,其中包含日期、事件名称、地点、时间开始和时间结束。现在,当我想预订一个新活动时,我想首先检查某个场地是否已经在给定日期和时间范围内被占用。

这是我到目前为止所得到的,但它不起作用。

<?php
session_start();
include('config1.php');

       $sql = "SELECT venue FROM schedules WHERE venue =".$_POST['venue']" && date =".$_POST['date']" ";

       $select = mysql_query($sql);

       $row = mysql_num_rows($select);

            if ($row > 0)  
          {
            echo 'true';  
          }
             else 
          {
             echo 'false';
          }

?>


and the check-venue.php
<?php
session_start();
include('config1.php');

       $sql = "SELECT venue FROM schedules WHERE venue =".$_POST['venue']" && date =".$_POST['date']" ";

       $select = mysql_query($sql);

       $row = mysql_num_rows($select);

            if ($row > 0)  
          {
            echo 'true';  
          }
             else 
          {
             echo 'false';
          }

?>
4

1 回答 1

1

首先,你真的不应该使用这些mysql_*功能:

此扩展自 PHP 5.5.0 起已弃用,并将在未来删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。

其次,通过像这样将$_POST值直接放入查询中,您将面临各种注入攻击。您需要确保正确转义任何数据以防止这种情况发生。

第三(大概是为什么它根本不起作用),您没有引用您发送到数据库的(大概是字符串)值,并且在构建查询时存在语法错误 - 您在.之后缺少连接运算符 ( )变量。任何体面的编辑器都应该在您保存文件之前标记这些类型的错误。

于 2013-03-26T22:30:16.803 回答