我在数据库中有一张预订的事件表,其中包含日期,事件名称,地点,time_start和time_finish。
现在,当我想预订一个新活动时,我想先检查在给定日期和时间范围内某个场地是否已经有人居住。

这是到目前为止,我无法正常工作。

<?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';
          }

?>

最佳答案

首先,您实际上不应该使用mysql_*函数:


  自PHP 5.5.0起不推荐使用该扩展名,并将在以下版本中将其删除
  未来。相反,应使用MySQLi或PDO_MySQL扩展。


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

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

09-26 19:00
查看更多