Сегодня утром я написал хранимую процедуру, и я не знаю, как извлечь значения из нее через функцию класса в 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 ;