我在数据库中有一张预订的事件表,其中包含日期,事件名称,地点,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
值直接放入查询中,就像对各种注入攻击一样。您需要确保正确转义任何数据以防止这种情况。
第三(大概是为什么它根本不起作用),您没有引用发送到数据库的(可能是字符串)值,并且在构建查询时存在语法错误-您缺少连接运算符()后的变量。任何体面的编辑器都应在保存文件之前标记出此类错误。