Mysql 在PhpMyAdmin中,调用存储过程是可以的,但作为查询运行不会';行不通
这是我在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
呼叫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;