Php WAMP上的mysqli prepare语句中的比较运算符工作不正常

Php WAMP上的mysqli prepare语句中的比较运算符工作不正常,php,mysqli,wamp,wampserver,Php,Mysqli,Wamp,Wampserver,我把我的网站放在一个托管网站上,一切正常,除了我检查了我允许的cpu使用情况。我将我的网站和数据库迁移到安装了WAMP的本地计算机上 旧主机: Apache版本2.2.23 PHP版本5.3.18 MySQL版本5.1.66-cll WAMP: Apache 2.4.2 PHP 5.4.3 MYSQL 5.5.24 出于某种原因,小于和大于比较运算符在mysqli prepare语句中停止工作。如果我删除sql语句的以下部分,那么它会像应该的那样返回所有内容。我还尝试手动输入日期,手动输入的日期

我把我的网站放在一个托管网站上,一切正常,除了我检查了我允许的cpu使用情况。我将我的网站和数据库迁移到安装了WAMP的本地计算机上

旧主机: Apache版本2.2.23 PHP版本5.3.18 MySQL版本5.1.66-cll

WAMP: Apache 2.4.2 PHP 5.4.3 MYSQL 5.5.24

出于某种原因,小于和大于比较运算符在mysqli prepare语句中停止工作。如果我删除sql语句的以下部分,那么它会像应该的那样返回所有内容。我还尝试手动输入日期,手动输入的日期在哪里?是,并且返回的也是正确的

不起作用
上次更新在哪里?

确实有效
上次更新的地方是“1991-09-26 01:25:10”

以下是我的代码:

<?php

session_start();

$output = "You must log in to see users.";

if (isset($_SESSION['status'])){

    $status = $_SESSION['status'];
    $myUsername = $_SESSION['username'];

    if ($status == 1){

        $output = "";

        require_once __DIR__ . '/db_connect.php';
        $mysqli = new DB_CONNECT();

        $currentTime2 = date( 'Y-m-d H:i:s', strtotime('-15 seconds'));

        if ($stmt = $mysqli->prepare("select username from users where last_update > ? order by username")){

            $stmt->bind_param("s", $currentTime2);

            $username = "";

            $stmt->execute();

            $stmt->bind_result($username);

            while ($stmt->fetch()){
                if ($username != $myUsername){
                    $output = $output . "<div class='user'><div class='user-pic'></div><div class='user-name'>" . $username . "</div></div>";
                }
            }

            $stmt->close();

        }
    }
}

echo $output;

?>
以下是db_connect.php文件:

<?php

class DB_CONNECT extends mysqli{

    function __construct() {

        $this->connect();
    }

    function __destruct() {

        $this->close();
    }

    function connect() {

        require_once __DIR__ . '/db_config.php';

        parent::__construct(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);

        if (mysqli_connect_errno()) {
            printf("connect failed: %s\n", mysqli_connect_error());
            exit();
        }
    }

    function close() {

    }

}

?>

请注意,如果我使用bind_param或只是手动输入一个datetime,就会出现这种情况,因此这可能不是原因

.1。我还尝试手动输入日期,手动输入的日期在哪里?是,并且返回的也是正确的

.2。请注意,如果我使用bind_param或只是手动输入一个datetime,就会出现这种情况,因此这可能不是原因

。。。看起来每个都有矛盾,是吗


从1991年9月26日01:25:10到现在的15秒,时间似乎略有不同。我有一种感觉,如果你的数据符合如此严格的条件,你必须再次检查它。

我自己已经解决了这个问题。在回显$currentTime2中的时间后,我注意到它是未来的5个小时。我现在是UTC-0:500时间,所以我在date.timezone行中更改了php.ini文件


date.timezone=“美国/纽约”

绑定没有错误。我会更新上面的内容,“停止工作”是什么意思?它是忽略比较并返回所有行、不返回行还是从
execute
返回错误?它不返回行。我拥有的每一个这样的文件都不返回任何行。数据在服务器上运行时很好。当有人登录时,javascript每5秒更新一次数据库中的条目。我使用此字段检查他们是否仍然在线,以防他们关闭浏览器窗口。我似乎已经通过更改php.ini文件中的时区解决了问题。
<?php

class DB_CONNECT extends mysqli{

    function __construct() {

        $this->connect();
    }

    function __destruct() {

        $this->close();
    }

    function connect() {

        require_once __DIR__ . '/db_config.php';

        parent::__construct(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);

        if (mysqli_connect_errno()) {
            printf("connect failed: %s\n", mysqli_connect_error());
            exit();
        }
    }

    function close() {

    }

}

?>