小编Ign*_*cki的帖子

PHP PDO:SQL查询未返回预期结果

我在PHP中有一个函数(见底部),它查询MySQL数据库.当我使用以下值时:

  • $ map => 1,
  • $ limit => 10,
  • $ from => 0,
  • $ to => CURRENT_TIMESTAMP

使用SQL语句:

SELECT user,
       scoreVal AS score,
       UNIX_TIMESTAMP(timestamp) AS timestamp 
  FROM Score 
 WHERE timestamp >= :from 
   AND timestamp <= :to 
   AND map = :map 
 ORDER BY scoreVal DESC, timestamp ASC 
 LIMIT :limit
Run Code Online (Sandbox Code Playgroud)

在phpMyAdmin中,我得到以下结果:

phpMyAdmin结果

但是PHP PDO返回一个空数组.

我到目前为止尝试调试:

  • 我已经用静态值而不是占位符替换了他准备的SQL查询 - 正确返回
  • 分别尝试每个占位符,用经过测试的硬编码值替换其余的 - 不返回任何内容
  • 我没有将变量传递给占位符,而是在execute(Array())部分传递固定常量. - 什么都不返回.
  • 我在打开mySQL查询日志之后进一步发现,PHP客户端连接,但随后退出而不发送任何查询.

由此,我认为这是函数中占位符的一个问题,但是我一直无法找到他们失败的原因.这很可能发生在PHP端,因为MySQL没有错误抛出错误文件.

这是我正在使用的函数,传入的变量是:

  • $ map => 1,
  • $ limit => 10,
  • $ from => 0,
  • $ to => 0 …

php mysql pdo

6
推荐指数
1
解决办法
831
查看次数

标签 统计

mysql ×1

pdo ×1

php ×1