PHP-PropepPDO返回零行,与查询无关
我试图直接通过PDO执行查询,尽管我使用的是Propel作为ORM。问题是查询总是返回0条记录。我不确定发生了什么,因为昨晚它工作得很好,而当我今天早上起来做我的项目时,我一直在处理这个特殊的问题 起初,我试图返回一个带有参数的连接查询,我知道有符合条件的记录。然后在大约一个小时后,我认为这是我的参数,等等,我切换到使用一个非常简单的select语句 php代码:PHP-PropepPDO返回零行,与查询无关,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我试图直接通过PDO执行查询,尽管我使用的是Propel作为ORM。问题是查询总是返回0条记录。我不确定发生了什么,因为昨晚它工作得很好,而当我今天早上起来做我的项目时,我一直在处理这个特殊的问题 起初,我试图返回一个带有参数的连接查询,我知道有符合条件的记录。然后在大约一个小时后,我认为这是我的参数,等等,我切换到使用一个非常简单的select语句 php代码: $sql = "SELECT * FROM league;"; $con = Propel::getConnection(); $c
$sql = "SELECT * FROM league;";
$con = Propel::getConnection();
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $con->prepare($sql);
$rows = $stmt->fetchAll();
我尝试过用相同的结果查询数据库中的所有表。有什么问题吗?我在phpMyAdmin和MySQLWorkbench中尝试了这些查询
一天半之后,我想不出问题出在哪里了。希望有人能帮忙
谢谢。正如评论中提到的,正确答案是:您忘记在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();
$sql=“从联盟中选择*”;
$con=spreep::getConnection();
$con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
$stmt=$con->prepare($sql);
$stmt->execute();//fetchAll();
查询中的分号可能会导致问题您还忘记在fetchAll()
OMG之前调用execute()
!精神近视万岁!我真不敢相信我错过了。很尴尬。谢谢,猴子。只是一个快速跟进。“setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)”不应该在执行之前通过调用fetchAll()进行例外吗?只是好奇。再次感谢。我想是的,但我看不到您的异常处理,所以我不知道您期望的是什么
vs您收到的是什么