background image

图 2  应用存储过程验证用户登录的身份
本范例的开发过程如下。
(1)在 MySQL 数据库中建立存储过程 user_ login,语句如下:
mysql>delimiter //
mysql>CREATE PROCEDURE user_login(inout name varchar(20),inout pwd varchar(20))
mysql>Begin
mysql>select * from tb_admin username=name and pwd=pwd;
->END
->//
注意:在上面的语句中,"delimiter //"

“ ”

表示将当前的语句结束符号从 : 改成"//",这样就

可以在存储过程的内部使用分号";"

了;而 //”表示 MySQL 语句的结束符,即建立存储过

程。
(2)建立数据源的连接,使用存储过程时与建立其他的数据源有所区别,需要创建一个
MySQL 对象,代码如下:
<?php
$link=new mysqli("localhost","root","root","db_admin");
$link->query("set names gb2312",MYSQLI_USE_RESULT);
?>
(3)利用 Call 语句调用存储过程,对传递的参数进行验证,并对验证结果给出相应的信
息提示。关键程序代码如下:
<?php
if($_POST["submit"]<>""){
$result=$link->query("call user_login('".$_POST[username]."','".
$_POST[pwd]."')",MYSQLI_USE_RESULT);
$info=mysqli_fetch_array($result);
if($info==true){
echo "<script>alert('恭喜您,登录成功!');</script>";
}
else{
echo "<script>alert('对不起,您输入的用户名或密码错误,请您重新输入!');</script>";
}
}
?>