Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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 致命错误:未捕获PDOException:SQLSTATE[HY000]:一般错误:存在挂起的结果集时,2014无法执行查询 $query=“调用GetAllCategories()”; $stmt=$pdo->prepare($query); $stmt->execute(); $categories=$stmt->fetchAll();_Php_Mysql_Database_Stored Procedures_Pdo - Fatal编程技术网

Php 致命错误:未捕获PDOException:SQLSTATE[HY000]:一般错误:存在挂起的结果集时,2014无法执行查询 $query=“调用GetAllCategories()”; $stmt=$pdo->prepare($query); $stmt->execute(); $categories=$stmt->fetchAll();

Php 致命错误:未捕获PDOException:SQLSTATE[HY000]:一般错误:存在挂起的结果集时,2014无法执行查询 $query=“调用GetAllCategories()”; $stmt=$pdo->prepare($query); $stmt->execute(); $categories=$stmt->fetchAll();,php,mysql,database,stored-procedures,pdo,Php,Mysql,Database,Stored Procedures,Pdo,我使用此代码使用存储过程从DB中获取类别,没有问题,一切正常 这是GetAllCategories()过程: 分隔符$$ CREATE DEFINER=`root`@`localhost`过程`GetAllCategories`() 开始 挑选 身份证,姓名 从…起 类别; 结束$$ 定界符; 之后,我使用常规SQL语句获取POST(对于测试,我将使用存储过程) 这是获取帖子的查询: 选择 `p`.`id`, `u`.`name`作为`author`, `职位名称`, `发布日期`, `后im

我使用此代码使用存储过程从DB中获取类别,没有问题,一切正常

这是GetAllCategories()过程:

分隔符$$
CREATE DEFINER=`root`@`localhost`过程`GetAllCategories`()
开始
挑选
身份证,姓名
从…起
类别;
结束$$
定界符;
之后,我使用常规SQL语句获取POST(对于测试,我将使用存储过程)

这是获取帖子的查询:

选择
`p`.`id`,
`u`.`name`作为`author`,
`职位名称`,
`发布日期`,
`后img`,
`发布内容`
从…起
`posts``p`
加入'users``u`ON
`p`.`author\u id`=`u`.`id`;

从这里开始出现问题我使用了
$stmt->closeCursor()
GetAllCategories()
存储过程中获取数据后解决此错误

$query=“调用GetAllCategories()”;
$stmt=$pdo->prepare($query);
$stmt->execute();
$categories=$stmt->fetchAll();
$stmt->closeCursor();
致命错误:未捕获PDOException:SQLSTATE[HY000]:一般错误:存在挂起的结果集时,2014无法执行查询。考虑取消前一个PDOTRONT/<代码> /P>
当同时执行两次时,总是会发生此错误,例如:

  • 案例1

    如果(!$query->execute())

    否则

  • 解决方案:不需要第二次执行,删除第二次,第一次执行已经执行

  • 如果第一种情况不起作用,使用此解决方案在$query=$handler->prepare($sql)之后调用此函数

    $query->closeCursor()


  • 我希望此解决方案有帮助

    如果使用
    fetchAll()
    ,则不应出现这种情况,因为这通常是解决此问题的方法。请参阅以获取各种建议尝试
    $stmt->closeCursor()
    fetchAll()
    之后,所以可能是因为您试图将过程与常规一起使用,所以您应该使用一种类型的所有查询。
    die("SQL FAILED");
    
    $query->execute(); // **DELETE THIS ONE**