我尝试直接通过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中尝试过查询。
经过一天半的时间,我无法弄清问题是什么。希望有人可以提供帮助。
感谢。
答案 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();