background image

php 程序中应用 sql 存储过程实现登录身份验证

应用存储过程实现登录身份验证
存储过程是数据库编程中最重要的内容。从 MySQL 5.0 以上版本开始支持存储过程。这样
可以大大提高数据的处理速度,同时也可以提高数据编程的灵活性。
使用存储过程时,首先,需要将 php_mysqli.dll 文件拷贝到 php5 下的 ext 文件夹下,然后
必须修改 php.ini 文件的设置(在更改文件前需要去除该文件的只读属性),添加
“extension=php_mssqli.dll”命令,如图 1 所示,最后,重新启动 Apache 服务器。
§
图 1  修改 php.ini 的配置
下面介绍如何创建存储过程。
(1)首先声明一个存储过程,语法如下:
CREATE PROCEDURE proc_name([proc_parameter[,…]])
[characteristic…] routine_body
其中,CREATE PROCEDURE 是创建存储过程的关键字;proc_name 表示存储过程的名称;
proc_parameter 表示存储过程的参数。
存储过程的参数有 3 种类型,即 in、out、inout。其中参数 in 表示输入参数;out 表示输出参
数;inout 表示该参数既可以输入也可以输出。
(2)其次,必须在创建的存储过程的 SQL 语句中使用 BEGIN…END。
(3

)最后,利用 Call proc_name(@a);”调用存储过程。其中,@a 是传入的参数,用来保

存统计结果。
使用存储过程具有以下优点。
(1)存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的
MySQL 语句,在对存储过程进行更改时,对程序的源码毫无影响。
(2)存储过程的执行速度要比执行批处理的速度快得多。
(3)系统管理员可以对执行某一存储过程的权限进行限制,从而保证数据的安全。
调用存储过程的语法如下:
{CALL procname (?,?)}
其中,procname 表示存储过程的名称;?表示传递的参数。
下面通过具体的范例来讲解存储过程的应用。
目前,验证用户登录身份的方法有多种,而通过调用存储过程来实现用户身份验证是目
前最好的解决方案之一。因为存储过程在创建时即在服务器上进行编译,所以执行起来要
比单个 MySQL

” “

语句快得多。运行本范例,在 用户名 和 密码 文本框中输入正确的用户

名和密码,单击【登录】按钮即可进行用户身份验证。运行结果如图 2 所示。
§