Php WAMP上的mysqli prepare语句中的比较运算符工作不正常
我把我的网站放在一个托管网站上,一切正常,除了我检查了我允许的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语句的以下部分,那么它会像应该的那样返回所有内容。我还尝试手动输入日期,手动输入的日期在哪里?是,并且返回的也是正确的 不起作用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语句的以下部分,那么它会像应该的那样返回所有内容。我还尝试手动输入日期,手动输入的日期
上次更新在哪里?
确实有效上次更新的地方是“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() {
}
}
?>