PHP - Propel PDO无论查询如何,都返回零行

时间:2014-04-07 19:53:36

标签: php mysql sql pdo

我尝试直接通过PDO执行查询,但我使用Propel作为我的ORM。问题是查询总是返回0条记录。我不知道发生了什么事,因为它昨晚工作得非常好,然后当我今天早上起床参与我的项目时,我一直在处理这个特殊问题。

起初,我试图返回带参数的JOIN查询,我知道有合格的记录。然后大约一个小时后认为这是我的参数等,我转而使用一个非常简单的选择语句。

php代码:

$sql = "SELECT * FROM league;";
$con = Propel::getConnection();
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $con->prepare($sql);
$rows = $stmt->fetchAll();

我尝试使用相同的结果查询数据库中的所有表。可能是什么问题呢?我已经在phpMyAdmin以及MySQLWorkbench中尝试过查询。

经过一天半的时间,我无法弄清问题是什么。希望有人可以提供帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

正如评论中提到的那样是正确的答案:你忘了在fetchAll()之前调用execute()

代码的工作版本是:

$sql = "SELECT * FROM league;";
$con = Propel::getConnection();
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $con->prepare($sql);
$stmt->execute(); // <-- This executes the statement, without it, there is no result set to fetch
$rows = $stmt->fetchAll();