Не знаю, как получить значения из хранимой процедуры - PullRequest
1 голос
/ 11 января 2020

Сегодня утром я написал хранимую процедуру, и я не знаю, как извлечь значения из нее через функцию класса в php или phpmyadmin. Другие примеры с сайта мне не помогли.

Вот что я написал для получения результатов:

public function totalProcedures($friend_name,$session_id)
{
/*
 *query to fetch stored procedure 
 */    
try
{
    //executing the stored procedure
    $sql_sp="CALL timeline (:friend, :session,@updates, @group_posts)";
    $stmt_sp= $this->_db->prepare($sql_sp);
    $stmt_sp->bindValue(":friend",$friend_name);
    $stmt_sp->bindValue(":session",$session_id);
    $stmt_sp->execute();
    $rows=$stmt_sp->fetch(PDO::FETCH_ASSOC);
    $stmt_sp->closeCursor(); // closing the stored procedure
    //trying to get values from OUT parameters.

    $stmt_sp_2=$this->_db->prepare("select @updates,@group_posts");
    $stmt_sp_2->execute();
    return    $stmt_sp_2->fetch(PDO::FETCH_ASSOC);

} 
catch (PDOException $ei)
{
  echo $ei->getMessage();
}    
}

Может ли кто-нибудь помочь мне, как получить результаты?

Вот хранимая процедура:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `timeline`(IN `friend` VARCHAR(255), IN `session_id` VARCHAR(255), OUT `updates` VARCHAR(62555), OUT `group_posts` VARCHAR(62555))
BEGIN

SELECT * 
FROM updates 
WHERE author IN (friend, session_id)  
ORDER BY time DESC
LIMIT 5;

SELECT * 
FROM group_posts 
WHERE author_gp IN (friend, session_id) 
ORDER BY pdate DESC 
LIMIT 5;

END$$
DELIMITER ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...