background image

PHPmysql 存储过程实现分页的示例

一个存储过程是一个可编程的函数,当希望在不同的应用程序或者平台上执行相同的函
数,或者封装特定功能时,存储过程是非常有用的!

以下是详细代码:
meta charset=’utf-8′
php
$host=”localhost”;
$user=”root”;
$pwd=”root”;
$dbname=”test”;
$link   =   mysql_connect($host,   $user,   $pwd)or   die(“Could   not   connect   ”   . 
mysql_error());
mysql_select_db($dbname, $link) or die (‘Can’t use test  ‘ . mysql_error());
mysql_query(“SET NAMES ‘utf8 ”);

mysql_query(“SET CHARACTER_SET_CLIENT=utf8 );

mysql_query(“SET CHARACTER_SET_RESULTS=utf8 );

检查存储过程是否已经存在
$procedure_check=”SHOW CREATE PROCEDURE total_users”;
$is_exist=mysql_query($procedure_check);
$procedure_check2=”SHOW CREATE PROCEDURE page_users”;
$is_exist2=mysql_query($procedure_check2);
if(!$is_exist){
由于存储过程执行一次后,只要没有 drop 掉就始终存在,所以对于
查询总量的存储过程来说只需要声明一次就可以,如果已经存在就不重复声明
声明检索总用户数的存储过程
$sql_total=”
#Basic Stored Procedure example
create procedure total_users(out total int(10))
BEGIN
 select count() INTO total from user;
END
“;
mysql_query($sql_total);
}
调用存储过程
mysql_query(“call total_users(@total_num);”);
$total_res=mysql_query(“select @total_num”);
获取用户总数