Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-PropepPDO返回零行,与查询无关_Php_Mysql_Sql_Pdo - Fatal编程技术网

PHP-PropepPDO返回零行,与查询无关

PHP-PropepPDO返回零行,与查询无关,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我试图直接通过PDO执行查询,尽管我使用的是Propel作为ORM。问题是查询总是返回0条记录。我不确定发生了什么,因为昨晚它工作得很好,而当我今天早上起来做我的项目时,我一直在处理这个特殊的问题 起初,我试图返回一个带有参数的连接查询,我知道有符合条件的记录。然后在大约一个小时后,我认为这是我的参数,等等,我切换到使用一个非常简单的select语句 php代码: $sql = "SELECT * FROM league;"; $con = Propel::getConnection(); $c

我试图直接通过PDO执行查询,尽管我使用的是Propel作为ORM。问题是查询总是返回0条记录。我不确定发生了什么,因为昨晚它工作得很好,而当我今天早上起来做我的项目时,我一直在处理这个特殊的问题

起初,我试图返回一个带有参数的连接查询,我知道有符合条件的记录。然后在大约一个小时后,我认为这是我的参数,等等,我切换到使用一个非常简单的select语句

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中尝试了这些查询

一天半之后,我想不出问题出在哪里了。希望有人能帮忙


谢谢。

正如评论中提到的,正确答案是:您忘记在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
您收到的是什么