-1

我正在尝试对以下代码进行 Ajax 调用,但我得到了一个 500 错误。任何关于我做错了什么的指示都将受到欢迎。谢谢

if isset(($_POST['lodgeChoice']))
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/Includes/datalogin.php';
    $lodgeChoice = $_POST['lodgeChoice'];
    $startDate = $_POST['dateChosen'];
    $duration = $_POST['duration'];

    $endDate = strtotime($startDate. ' + ' . $duration . ' days');

    $mysql_query = 'SELECT id FROM bookings WHERE (the_date BETWEEN "' . $startDate . '" AND "' . $endDate . '") AND id_item = ' . $lodgeChoice;

    if($stmt = $mysqli->prepare('SELECT COUNT(*) FROM bookings WHERE (the_date BETWEEN "?" AND "?") AND (id_item = ?)');
        $stmt->bind_param("sss",$startDate, $endDate,$lodgeChoice);
        $stmt->execute();
        $stmt->bind_result($count);
        $stmt->fetch();
        $stmt->close();

        return ($count > 0 ? TRUE : FALSE);

}
4

1 回答 1

2

我强烈推荐使用支持语法高亮的代码编辑器,因为你会非常清楚地看到你的错误。

if我将您的代码粘贴到 Netbeans 中,它会立即在您的代码中的两个语句上标记错误。

第一个: if 条件周围没有括号。(您在 post 变量周围也有太多括号,但这不会导致任何错误)

if isset(($_POST['lodgeChoice']))
  ^                              ^
bracket reqd here              and here

第二个,你在末尾有一个分号,这是错误的,并且你想要在if().

//removed ; from end of the if() line:
if($stmt = $mysqli->prepare('SELECT COUNT(*) FROM bookings WHERE (the_date BETWEEN "?" AND "?") AND (id_item = ?)')
{    //added this line
    .....
    .....
}   //added this line as well.

希望有帮助。

正如我所说,一个体面的代码编辑器会让你的生活变得更轻松。而且由于您可以免费获得一些非常好的编辑器,因此真的没有理由不使用它。

于 2013-03-01T16:51:33.707 回答