Mysql 在PhpMyAdmin中,调用存储过程是可以的,但作为查询运行不会';行不通

Mysql 在PhpMyAdmin中,调用存储过程是可以的,但作为查询运行不会';行不通,mysql,sql,select,stored-procedures,Mysql,Sql,Select,Stored Procedures,这是我在mysql中的存储过程。当我在phpmyadmin中调用它时,它就可以完成了 呼叫phpmyadmin 调用sp_del_temp_记录('tbl_用户登录和',1880,10) 但当我在mysql\u查询中使用时,它不起作用: mysql查询(“调用sp_del_temp_record('tbl_user_login_and',1877,10)” 这是我的sp: CREATE PROCEDURE `sp_del_temp_record`(p_tbl varchar(255), max

这是我在mysql中的存储过程。当我在phpmyadmin中调用它时,它就可以完成了
呼叫phpmyadmin
调用sp_del_temp_记录('tbl_用户登录和',1880,10) 但当我在mysql\u查询中使用时,它不起作用:
mysql查询(“调用sp_del_temp_record('tbl_user_login_and',1877,10)”
这是我的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;
试着这样做:

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 ;
尝试使用mysqli多线程查询

public function getResultSets() {
$retVal = array();
do {
    if ($result = $this->mysqli->store_result())
        $retVal[] = $result;
} while ($this->mysqli->next_result());
return $retVal;

}

定义“它不工作”使用mysqli_查询而不是mysql_查询:mysqli_查询($link2,“调用sp_delu_temp_记录('tbl_user_login_and',1880,10)”);对不起,我的国旗不是真的。谢谢你,克里斯,你的回答是真的。mysql_查询不工作,但mysqli_查询正常。$re=mysql_查询(“调用sp_del_temp_记录('tbl_用户登录_and',1877,10)”;如果($re)打印“ok1”;否则{print mysql_error();}结果是:过程dbname.sp_del_temp_记录无法返回给定上下文中的结果集plz声明变量,请参阅此链接。
public function getResultSets() {
$retVal = array();
do {
    if ($result = $this->mysqli->store_result())
        $retVal[] = $result;
} while ($this->mysqli->next_result());
return $retVal;