我正在尝试获取最近35分钟内添加的行。字段议程doEm的类型为datetime(YYYY-MM-DD HH:ii:ss)。当我复制完全相同的查询并将其粘贴到phpmyadmin时,它可以正常工作,但是在我的使用pdo的php代码中,它可以根据自己的愿望运行(lol)。有时它会正确返回,并在几秒钟之内不再返回任何结果,然后再次运行。也没有错误返回 var_dump($ _ SESSION ['userid'])返回预期值。
我的php代码:
function db_exec($conn,$sql,$values=null){
$sth = $conn->prepare($sql);
if($values!=null)
foreach($values as $key => $value){
$index=++$key;
$sth->bindValue($index,$value);
}
$sth->execute();
return $sth;
}
$agendamentos=db_exec($dbread,"SELECT agendamentos.id as id, agendamentos.userid as userid,
agendamentos.paciente as paciente,agendamentos.agendadoPara as agendadoPara,usuarios.nome as nome,
usuarios.contaTipo as contaTipo, profissionais.sexo as sexo, profissionais.profissao as profissaoId,
tipoProfissionalPF.tipo as profissao,tipoProfissionalPF.urlprefix as urlprefix, tipoProfissionalPJ.tipo as estabelecimento,
tipoProfissionalPJ.urlprefix as clinprefix,empresaDados.nomeFantasia as nomeFantasia
FROM agendamentos
LEFT JOIN usuarios ON usuarios.id=agendamentos.userid
LEFT JOIN profissionais ON profissionais.userid=agendamentos.userid
LEFT JOIN empresaDados ON empresaDados.userid=agendamentos.userid
LEFT JOIN tipoProfissionalPF ON tipoProfissionalPF.id=profissionais.profissao
LEFT JOIN tipoProfissionalPJ ON tipoProfissionalPJ.id=empresaDados.tipoProfissionalPJ
WHERE agendamentos.paciente=? AND agendamentos.confirmado=0 AND TIMESTAMPDIFF(MINUTE,agendamentos.agendadoEm,NOW())<35",array($_SESSION['userid']));
if($agendamentos->rowCount()>0)
echo 'ok';
else
echo 'none';
正如我之前说过的,有时它可以工作,并且在几分钟之内不再起作用。通过在phpmyadmin上运行此查询始终可以工作,即使它在我的php页面上不起作用也是如此。 有人知道我在做什么错吗?对我来说,这是个麻烦,我没有发现问题所在。
答案 0 :(得分:0)
问题是我的rds实例的时区。将主rd设置为从属的另一个时区,因此查询可能会针对NOW()得出两个不同的结果,这取决于到达的rds。