Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

in PhpMyAdmin call stored procedures is ok but running as a query doesn't work

this is my store procedure in mysql .when i call it in phpmyadmin its ok and done
call in phpmyadmin
CALL sp_del_temp_record('tbl_user_login_and',1880,10) but when i use in mysql_query it is not working:
mysql_query("CALL sp_del_temp_record('tbl_user_login_and',1877,10)");
this is my sp:

CREATE PROCEDURE `sp_del_temp_record`(p_tbl varchar(255),  max_record smallint(6),del_count smallint(6))
BEGIN
    SET @count_query=CONCAT ("select count(auto_id) into @count_record from ",p_tbl);
    PREPARE count_record_q FROM @count_query;
    EXECUTE count_record_q;


    if @count_record>max_record then
        SET @del_query=CONCAT ("delete from ",p_tbl," order by auto_id asc limit ",del_count);
        PREPARE del_query_q FROM @del_query;
        EXECUTE del_query_q;
    end if;    
   END;
like image 304
ali mirzaei yazdi Avatar asked Dec 15 '25 19:12

ali mirzaei yazdi


1 Answers

try this way :

DELIMITER $$
CREATE PROCEDURE `sp_del_temp_record`(p_tbl varchar(255),  max_record smallint(6),del_count smallint(6))
BEGIN
    SET count_query=CONCAT ("select count(auto_id) into count_record from ",p_tbl);
    PREPARE count_record_q FROM count_query;
    EXECUTE count_record_q;


    if count_record>max_record then
        SET del_query=CONCAT ("delete from ",p_tbl," order by auto_id asc limit ",del_count);
        PREPARE del_query_q FROM del_query;
        EXECUTE del_query_q;
    end if;    
END$$

DELIMITER ;
like image 192
Amitesh Kumar Avatar answered Dec 17 '25 10:12

Amitesh Kumar



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!