为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个查询总是在 phpmyadmin 中有效,但在我的 php pdo 代码中它有时有效?

为什么这个查询总是在 phpmyadmin 中有效,但在我的 php pdo 代码中它有时有效?

PHP
holdtom 2021-06-03 14:50:31
我正在尝试获取在过去 35 分钟内添加的行。字段议程doEm 的类型为datetime(YYYY-MM-DD HH:ii:ss)。当我复制完全相同的查询并粘贴到 phpmyadmin 时,它可以正常工作,但在我使用 pdo 的 php 代码中,它根据自己的意愿工作(笑)。有时它会正确返回,几秒钟后它不再返回任何结果,然后再次工作。没有返回错误, 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 nomeFantasiaFROM 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 页面上不起作用。有谁知道我做错了什么?对我来说是个谜,我没有确定问题所在。
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

问题是我的 rds 实例的时区。主 rds 设置为从属的不同时区,因此查询可能有两个不同的 NOW() 结果,具体取决于到达的 rds。


查看完整回答
反对 回复 2021-06-13
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信